接口自动化测试实战
这是一个从0到1的过程,一步一步搭建的测试接口框架,本教程从开始写框架的思路,和实现过程深入解析,并且深入到了每个相关的的各个细节,不论你是刚入门的菜鸟,还是一个懂编码经验的工程师,相信本系列的文章都会对你有所帮助。
你即可以学到从0到1搭建自动化的编码思想,也可以改变成一个接口自动化工具,在需要的时候可以自己更改代码和维护。
你可以收获什么?
1.完善python基础和编程思想
2.有一个设计测试框架思维
3.提升自己能力,在也不怕面试没有编码经验
4.一个可以拿出手的项目,简历中的一个亮点
5.干货分享相比搜索到各种知识,这篇文章或许略有难度,但收获一定是你想不到的
我们的设计思想如下:
- 语言:python3.7
- 请求:requests
- 测试报告:allure测试报告和Excel测试报告并邮件发送测试报告
- 维护:只需要维护Excel表格,表格执行python代码
- 兼容性:向后兼容性强,可以在接口自动化完善的基础上增加 web ui app ui 自动化测试
框架支持如下功能:
- 支持成千上万条接口用例进行测试(经过测试中配电脑,3分钟执行完成5000条接口测试)
- 详细的Excel测试报告和美观的allure报告输出(这里能让你掌握自定义allure报告)
- 支持不同类型上传文件(base64,file)上传文件格式
- 本框架采用多线程和单例等设计模式,代码简单而简约适合初中级学者,使用学习
- 摆脱普通的测试框架和断言框架的约束,他们能做到的我们一样也可以,学习简单~
接口自动化篇:
接口自动化第二章之-封装读取excel工具类
接口自动化第三章之-读取elemen表格数据
接口自动化第四章之-读取用例表格数据
接口自动化第五章之-封装requests请求增加log日志类
接口自动化第六章之-返回结果和预期结果进行格式对比
接口自动化第七章之-完善框架结构,增加allure测试报告
接口自动化第八章之-结合jenkins持续集成
接下来详细介绍工具的如何使用!!!
1.分两个Excel来控制脚本,第一个我们取名为elements.xlsx,第二个取名testcase.xlsx
element.xlsx主要是管理接口的ip和链接,方便后面增加ui自动化存放元素:
elements.xlsx- key:代表的接口名字(不能重复的哦,唯一表示名字)
- type:接口的请求类型(如post,get等等)
- value:是接口的链接(是接口后面的链接哦,如/webapi这种)
testcase.xlsx主要用于管理测试步骤和测试数据等:
testcase的表格设计如下:
testcase.xlsx
下面介绍用例表的写法~~~
用例编号:用例表示这条用例的id
用例标题:这条用例是做什么的
前置条件:写skip即可跳过这个用例
测试功能点:见名知意,要测试的什么功能
测试步骤:按照顺序进行排列,依次写入步骤即可(不会根据步骤进行测试,根据写的用例顺序)
操作:进行接口测试 还是其他操作 目前只需要写API即可(后面支持ui等操作)
测试测试支持等待时间和选择上传文件的格式等:
-
1.格式为json格式,如果需要传入的参数是header,咱们就可以这么写:headers={'key':'value'},如果是body等参数就写:parmars={'phone': '', 'type': '1'}
-
2.参数支持调用python代码,parmars={'phone': '<b.create_phone()>', 'type': '1'}代码执行后会变成parmars={'phone': '155502226XXX', 'type': '1'}生成手机号哦
-
预期结果:写入你要测试的接口的返回内容,后面跟#号是要进行断言的内容会查看返回的接口里面有没有
-
3.如果有一条接口执行完成之后,等待的时间怎么写呢?只需要在测试数据最后跟上#等待时间=1,秒数计算的哦,=1就是等待1秒
-
4.有的同学我要是上传文件怎么办,目前支持base64,file,md5等,只需要将文件放到项目file的目录下,然后在用例中这样写:@files={'swt':'file','<phone>':'<web.jpg>', 'type': '1'},swt是必须要填写的哦,看你要传的文件格式,如果是base64,就写入base64就好了。
截图~ image
预期结果:写入你要测试的接口的返回内容,后面跟#号是要进行断言的内容会查看返回的接口里面有没有写法:#('这是我开发的第一个接口','1')
设计者:见名知意
步骤结果:会在测试报告里面体现
备注:可以备注接口的一些信息等
接下来咱们请求一下看一下测试报告等信息
两条接口测试通过的,测试完毕后,会将测试报告通过邮件的方式,发送到邮箱,下期会进行讲解如何使用,代码会在后续进行讲解和贴出
allur报告,这里只展示了正常情况~错误情况自己去探索哦:
imageimage
image
image
Excel报告如下:
image image接下来贴出代码结构:
imageimage
image
config:文件内是存储一些常量,比如存入接口的token唯一标识码等,存入代码生成的手机号,方便接口接下来的使用等
element:里面存放的是接口的相关配置第一个Excel
junit:生成xml报告,用于allure测试报告展示的数据
control:
- autotest.py:初始化数据,解析Excel数据,记录请求过程,生成测试报告
- common.py:存放公共函数的地方,存放自定义的函数
- data.py:进行Excel读取的数据,进行重组,得到到可以执行的json结构
- httpcaps.py:封装请求,记录用例结果,将结果返回至autotest.py
- junit.py:生成xml测试报告用于展示allure
- log.py:日志类,将输出的日志写到下面的log文件夹内
- testcase.py:执行测试用例
utlis.py:工具类,封装常用的函数
log:输出log文件,记录log产生的日志
report:输出excel测试报告
testcase:用例文件
httpstart:调用执行用例,是否生成报告和发送邮件等
如果你想直接获得源码可以加qq群,来一起学习进步。
接口自动化第二章,开始继续学习吧~
源码下载地址复制地址打开,不然会没有权限:https://gitee.com/zhangmeng1314/seautotet-public.git
感谢您的阅读,本人是希望能帮助到想进步学习的同学,大佬勿喷,我会一直维护此项目争取做的更好,我也是一个小白,希望和大家一起成长,第一次写博客文章,大家有意见感觉写的不好不清楚,评论区留言都可以的哦,我会用最简单的方式去解答您的问题,谢谢
qq群:234922431
网友评论