python接口自动化框架_接口自动化整体框架pytest-T010

一、为什么要做接口自动化

按照接口测试用例(设计方法可参考文章9)将接口功能测试通过后,当有新增接口或部分接口有变动时,原有未变动接口需要上线前整体测试时,如果再去手工测会比较耗时,这时如果把原本已测试好的接口,维护成python代码,每次上线前去跑一遍,就会节省很多测试时间,也不会说漏测某个接口,上线心里也更有普

二、自动化用例几大规则

1、写自动化测试用例之前必须要有接口功能测试用例;

2、用例之间不要有依赖关系;

3、每一条测试用例可以重复执行;

三、整体框架设计

b71cbeef43c53de5c2bf930d27488414.png

1、PyCharm新建api项目

命名及路径最好不要有中文

2、新建cases包python package

此文件包是最核心的,专门存放测试用例,cases下维护不同模块的测试用例;如login包下面放登陆相关的测试用例脚本,register下面放注册相关测试用例;特别注意每个模块用例下都会有一个conftest.py文件,专门用来写该模块的前置后置操作fixture,每个模块都有自己的前置操作,这里会有一个作用域,就像pytest默认规则,用例文件默认匹配test_开头的py文件,用例也必须test_开头,用例传入前置参数后,会自动匹配conftest.py命名的文件(不得不说pytest的前置后置比unittest框架装饰器NB多了);然后cases下面的conftest.py作用于整个用例模块;common_function.py存放一些公共函数,如将登录写成一个函数放到这里,当某用例A需要登录作为前置条件时,在conftest.py里面写一个fixture调用登录函数,然后将此前置条件传到A用例;test_data.yml里面存放测试数据,做参数化及代码数据分离。

3、新建common包封装一些工具类或公共函数

如read_yaml.py脚本里面写了一个读取yml文件的函数,当我们用例需要读取yml文件传参时,可以导入调用这个函数读取数据,实现数据分离;connect_mysql.py里面封装了一个操作数据库的类,增删改查作为方法,其他fixture或者用例要用可以直接导入,实例化,调用方法;还可以封装如发送邮件的方法。

4、项目下的conftest.py

对整个项目作用,可以写一些hook函数,控制pytest的运行规则

5、项目下的pytest.ini

改变用例匹配规则;mark标记作用;存放base_url等

6、项目下的readme.md

项目描述,项目环境,依赖包说明,用例及测试报告说明等

6、项目下的requirements

dos窗口进入项目所在文件夹

自动生成依赖包:pip freeze > requirements.txt

自动安装依赖包:pip install -r requirements.txt

一般要在其他环境运行时需要此操作

四、后期框架优化

1、Allure报告

2、邮件发送

3、持续集成jenkins

4、代码管理

五、其他说明

本问只讲了整体框架的思路,每个模块的细节都需要自己去学习,例如如何封装公共方法,如何连接操作数据库,一些python基础,requests的session会话使用,参数化,用例和数据分离,前置后置操作,jenkins服务搭建持续集成等等;

ps:后续不断学习完善上面每个模块,有时间写写公共方法,放到github上,不断总结、积累

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值