ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python+requests+allure实现接口功能自动化

2021-01-27 16:01:04  阅读:205  来源: 互联网

标签:Python 使用 接口 用例 allure sql requests 执行 tb


从12月开始一直在忙着做公司旧自动化框架的改造
原来的框架使用Unittest+htmlrunner来作为测试框架,并且部分测试用例没有使用数据驱动封装,有部分又是使用了数据驱动【excel来进行用例管理】
和领导沟通后,这2个月与另外一位同事投了一半的时间来进行框架的重构及用例的改造
目录树及用途大致如下:

由于原框架中,部分接口已封装好,直接复用,除了部分新增接口有增加,并对原接口地址等做了参数化,可通过修改ini文件,即可修改接口地址路径


在测试用例管理中,使用的是yml文件来进行管理的,每条用例的名称、id、检查项、使用到的数据库表等结果,均在yml文件中进行了定义

module_name 用来表示用例属于哪个功能模块
module_case_name来用作allure生成报告时展示用例的名称
isxxxxxxx 用来判断用例执行中是否需要进行相关操作,比如:初始化表,检查执行语句的返回内容,行首,sql语句是否执行成功等
CheckType 根据不同的checktype来走不同的响应结果断言逻辑,比如时间相关的,就设置为“TIME”等
sqltype 根据不同的type设置,执行对应的初始化和语法
tb_name 用例执行过程中使用到的表,会根据isInitialized和tb_name名字来判断是复用emp表还是创建新的空表
exec_order exec_sql 分别为sql执行的顺序和sql语句的内容,sql的内容中使用字符串格式化来填写,{}中为tb_name1和tb_name2变量取到的值,在代码中使用eval函数来实现参数的传递
最后就是expected_result根据isCheckxxx的填写,来填写对应用例的预期结果


在conftest.py文件中,还添加了一些通用的代码,比如收集测试用例名使用中文不出现乱码,使用fixture在每条用例执行前进行登录检查


在pytest.ini配置文件中,可以手动添加mark标记,针对该版本需要测试的1个或几个功能模块用例进行单独或批量的执行
addopts可以配置默认执行添加的参数,以便在命令行终端只敲入pytest即可自动带入addopts中已配置的参数
norecursedirs可以配置收集用例时排除的文件夹

最后为用例执行后生成的报告图例,可以在右侧查看预期结果与返回结果哪里不一致,以及执行的sql语句及接口返回的响应数据
下面参数中可看到该条用例使用到的变量值,以及下面测试步骤中可看到是哪一步断言失败

标签:Python,使用,接口,用例,allure,sql,requests,执行,tb
来源: https://www.cnblogs.com/creamk87/p/14335409.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有