【pytest接口自动化测试】结合单元测试框架pytest+数据驱动模型+allure

  • Post author:
  • Post category:其他


api: 存储测试接口

conftest.py :设置前置操作

         目前前置操作:1、获取token并传入headers,2、获取命令行参数给到环境变量,指定运行环境

commmon:存储封装的公共方法

     connect_mysql.py:连接数据库
     http_requests.py: 封装自己的请求方法
     logger.py: 封装输出日志文件
     read_yaml.py:读取yaml文件测试用例数据
     read_save_data.py:读取保存的数据文件

case: 存放所有的测试用例

data:存放测试需要的数据

save_data: 存放接口返回数据、接口下载文件

test_data: 存放测试用例依赖数据

upload_data: 存放上传接口文件

logs: 存放输出的日志文件

report: 存放测试输出报告

getpathinfo.py :封装项目测试路径

pytest.int :配置文件

requirement.txt: 本地python包(pip install -r requirements.txt 安装项目中所有python包)

run_main.py: 项目运行文件

# 结构设计

1.每一个接口用例组合在一个测试类里面生成一个py文件

2.将每个用例调用的接口封装在一个测试类里面生成一个py文件

3.将测试数据存放在yml文件中通过parametrize进行参数化,实现数据驱动

4.通过allure生成测试报告

## 代码展示
api/api_service.py #需要测试的一类接口

‘’’

Code description:服务相关接口

Create time: 2020/12/3

Developer: 叶修

‘’’

import os

from common.http_requests import HttpRequests

class Api_Auth_Service(object):

def __init__(self):
    self.headers = HttpRequests().headers

def api_home_service_list(self):
    # 首页服务列表
    # url = "http://192.168.2.199:9092/v1/auth/auth_service/findAuthService"
    url = os.environ["host"] + "/v1/auth/auth_service/findAuthService"  # 读取conftest.py文件地址进行拼接
    response = HttpRequests().get(url, headers=self.headers, verify=False)
    # print(response.json())
    return response

def get_service_id(self):
    #获取银行卡三要素认证服务id
    url = "http://192.168.2.199:9092/v1/auth/auth_service/findAuthService"
    #url = os.environ["host"] + "/v1/auth/auth_service/findAuthService"  # 读取conftest.py文件地址进行拼接
    response = HttpRequests().get(url,headers=self.headers)
    #print(response.json()['data'][0]['service_list'][0]['id'])
    service_id = response.json()['data'][0]['service_list'][1]['id']
    return service_id

def api_service_info(self,serviceId='0b6cf45bec757afa7ee7209d30012ce1',developerId=''):
    #服务详情
    body = {
        "serviceId" :serviceId,
        "developerId":developerId
    }
    url = "http://192.168.2.199:9092/v1/auth/auth_service/findServiceDetail"
    #url = os.environ["host"] + "/v1/auth/auth_service/findServiceDetail"#读取conftest.py文件地址进行拼接
    response = HttpRequests().get(url,headers=self.headers,params = body,verify=False)
    #print(response.json())
    return response

def api_add_or_update_service(self,api_param_req,api_param_res,description,error_code,icon,id,interface_remarks,
                          name,product_info,request_method,sample_code,sort,type,url):
    #服务添加或者更新
    body={
            "api_param_req": api_param_req,
            "api_param_res": api_param_res,
            "description": description,
            "error_code": error_code,
            "icon": icon,
            "id": id,
            "interface_remarks": interface_remarks,
            "name": name,
            "product_info": product_info,
            "request_method": request_method,
            "sample_code": sample_code,
            "sort": sort,
            "type": type,
            "url": url,
    }
    #url = "http://192.168.2.199:9092/v1/auth/auth_service/insertOrUpdateService"
    url = os.environ["host"] + "/v1/auth/auth_service/insertOrUpdateService"  # 读取conftest.py文件地址进行拼接
    response = HttpRequests().post(url,json=body,headers=self.headers,verify=False)
    return response

def api_add_service_price(self,id,max_number,money,service_id,small_number):
    #服务价格添加
    body = {
        "id": id,
        "max_number": max_number,
        "money": money,
        "service_id": service_id,
        "small_number": small_number
    }
    # url = "http://192.168.2.199:9092/v1/auth/auth_service/insertServicePrice"
    url = os.environ["host"] + "/v1/auth/auth_service/insertServicePrice"  # 读取conftest.py文件地址进行拼接
    response = HttpRequests().post(url, json=body, headers=self.headers, verify=False)
    return response

def api_apply_service(self,developer_id,service_id):
    #申请服务
    body ={
        "developer_id": developer_id,
        "service_id": service_id
    }
    # url = "http://192.168.2.199:9092/v1/auth/auth_service/applyService"
    url = os.environ["host"] + "/v1/auth/auth_service/applyService"  # 读取conftest.py文件地址进行拼接
    response = HttpRequests().post(url, json=body, headers=self.headers, verify=False)
    return response

if

name

== ‘

main

’:

#Auth_Service().api_home_service_list()

Api_Auth_Service().get_service_id()

#Auth_Service().api_service_info()

api_service.py

**最后:下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取 【保证100%免费】**

![](https://img-blog.csdnimg.cn/5de4729f538d4c8e8774f46cbc48891f.png#pic_center)

![在这里插入图片描述](https://img-blog.csdnimg.cn/1b48e1bf50c947a0b047dab446f9a23a.png#pic_center)



版权声明:本文为weixin_56331124原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。