浅谈一下自己的接口自动化落地与实现,顺便希望各位提出意见进行完善

呵呵
呵呵
订阅者
267
文章
0
粉丝
测试交流评论121字数 623阅读2分4秒阅读模式

由于刚来到咱们社区 第一次发帖,而且文笔不好,编程技术也烂的要死,直接讲述我的框架设计思路

使用的是 Pytest+Requests+Allure 框架
然后使用的 pytest 的参数化来进行运行接口测试数据文章源自玩技e族-https://www.playezu.com/181973.html

目前的项目目录:
浅谈一下自己的接口自动化落地与实现,顺便希望各位提出意见进行完善插图文章源自玩技e族-https://www.playezu.com/181973.html

common:公共方法封装 (yaml 操作,Requests 封装,assert 封装)
config:环境配置信息以及账号 token 等
data:接口测试数据
logs:pytest 配置后自动生成的日志
reports 和 temps:allure 测试报告
testcases:测试用例文章源自玩技e族-https://www.playezu.com/181973.html

request 封装:
浅谈一下自己的接口自动化落地与实现,顺便希望各位提出意见进行完善插图1文章源自玩技e族-https://www.playezu.com/181973.html

config 配置的环境数据以及接口地址,账号 token,请求头,请求体等等需要使用的东西
浅谈一下自己的接口自动化落地与实现,顺便希望各位提出意见进行完善插图2文章源自玩技e族-https://www.playezu.com/181973.html

data:
接口测试数据存放,一个 yaml 对应一个接口,一个 list 对应一条测试用例
格式可自己设定,我目前是存储 Url,用例信息,schema 库的响应结果格式校验,和预期结果文章源自玩技e族-https://www.playezu.com/181973.html

浅谈一下自己的接口自动化落地与实现,顺便希望各位提出意见进行完善插图3文章源自玩技e族-https://www.playezu.com/181973.html

logs 配置:
在 pytest.in
浅谈一下自己的接口自动化落地与实现,顺便希望各位提出意见进行完善插图4文章源自玩技e族-https://www.playezu.com/181973.html

输出来的格式
INFO     root:test_mimu.py:37 模块名称: 物品收藏,测试目的: 物品收藏成功 ,响应状态码: 200,响应结果: {"msg":"成功","code":0,"data":true}

testcases:
浅谈一下自己的接口自动化落地与实现,顺便希望各位提出意见进行完善插图5文章源自玩技e族-https://www.playezu.com/181973.html

conftest: 存储公共接口 (关联),如登录,等
然后就是测试用例文章源自玩技e族-https://www.playezu.com/181973.html

@allure.epic("移动端-接口测试")
class TestMain:
def setup_class(self):
self.req = RequestHandler()
self.logger = logging
@user2ize('args', yaml_case_data())
def test_mimu_api(self, args):
if args['case_name'] is not None:
# 动态生成标题
            allure.dynamic.title(args['case_name'])
# 动态获取级别信息
        if args['severity'] is not None:
allure.dynamic.severity(args['severity'])
# 动态获取模块名称
        if args['feature'] is not None:
allure.dynamic.feature(args['feature'])
# 动态获取用例功能名称
        if args['story'] is not None:
allure.dynamic.story(args['story'])
url = get_url(args['url'])
payload = args['body']
token = read_yaml('config/config.yaml')['token']
headers = request_header(payload, token)
with allure.step("接口请求"):
response = self.req.visit("POST", url, headers=headers, json=payload)
response_json = response.text
self.logger.info('模块名称: {},测试目的: {} ,响应结果: {}'.format(args['story'], args['case_name'], response_json))
response_body_check(args, response)
return response_json
def teardown_class(self):
self.logger.info("测试用例执行完毕")

思路:
调用封装的 yaml 方法,循环读取 data 目录下的所有 yaml 文件,然后将所有 yaml 文件内的数据读取出来,存入一个 List 内,然后使用参数化方法进行循环执行与断言校验。如果报错就用例执行失败并在日志和 allure 测试报告内详细展示报错原因
浅谈一下自己的接口自动化落地与实现,顺便希望各位提出意见进行完善插图6
浅谈一下自己的接口自动化落地与实现,顺便希望各位提出意见进行完善插图7

各位多多担待,第一次写,技术菜,文本菜

 
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证