1、先明确测试目标,测试范围,确定用什么框架(这里是使用Python+Pytest+Allure+Jenkins接口自动化框架,json维护测试数据)
当我们开始着手一个新的Python项目时,通常会涉及到使用多个第三方库,每个库可能需要特定的版本或依赖关系。同时,不同项目可能需要不同的Python版本。这时,虚拟环境就发挥了关键作用,我们让每个项目都单独使用各自的虚拟环境,这样可以更好地隔离项目之间的库,并避免全局Python环境的混乱
使用虚拟环境新建项目自动生成venv文件,不要动就好。
使用虚拟环境创建项目,第三方库都要重新下
2、框架结构图
3、工具类封装utils文件:log、get_json、登录账号加密方法等、
4、 conf公用配置:配置常用文件路径:测试报告路径、测试数据路径、日志文件路径、测试用例路径
5、conftest文件将登录封装为装饰器,返回token
fixture主要的目的是为了提供一种可靠和可重复性的手段去运行那些最基本的测试内容。比如在测试网站的功能时,每个测试接口用例都要token,利用fixture就可以只做一次
fixture参数scope: 作用范围,设置范围后,会根据设置的范围去触发执行。
- function:每个方法(函数)都会执行一次。(默认)
- class:每个类都会执行一次。类中有多个方法调用,只在第一个方法调用时执行
- module:一个.py文件执行一次。一个.py文件可能包含多个类和方法
- package/session:多个文件调用一次,可以跨.py文件
6、添加测试数据(json格式)
7、封装公共请求
1) reuqest 方法封装get、post、put、delete、assert、数据库连接
2) 根据系统功能模块封装公共方法,后续编写该模块测试用例可直接调用该方法
主要是拿到测试数据,然后处理测试数据(可以直接在方法中生成测试数据、或者调用系统接口拿到数据)
测试数据主要用于前端传参
8、编写测试用例
使用allure装饰器函数,pytest参数化:pytest.mark.parametrize(参数名称, 参数值)
9、pytest.ini:全局配置文件,是pytest单元测试框架的核心配置文件。
10、 main.py主函数运行测试用例(命令行运行)
主函数运行
def main():
"""
主函数入口
:return:
"""
pytest.main(['-v', CASE_DIR]) # 收集测试用例
system('allure generate ./allure-result --clean') # 收集测试数据,生成测试
os.system('allure open allure-report') # 自动打开测试报告
if __name__ == '__main__':
main()
命令行运行
1 运行test_operation_scheduling.py的所有用例
pytest -sv ./testcase/HandAnesthesiaSystem/test_SurgeryStation/test_operation
#2、运行该test_operation_scheduling.py的指定用例
pytest -sv ./testcase/HandAnesthesiaSystem/test_SurgeryStation/test_operation/xxxx.py
11、生成allure报告