irpas技术客

【pytest接口自动化测试】结合单元测试框架pytest+数据驱动模型+allure_程序员二黑.

网络 1646

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)


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #pytest接口自动化测试