<自动化测试方案_6>第六章、API自动化测试
第六章、API自动化测试
(一)工具实现
目前大众接口测试的工具有:Postman、SoupUI、jmeter
他们的特点介绍有人做个宏观的研究,这里进行引用:
https://blog.csdn.net/huilan_same/article/details/75413482
根据文章里的描述可知:
1,支持的接口类型与测试类型
功能上Jmeter最为强大,可以测试各种类型的接口,不支持的也可以通过网上或自己编写的插件进行扩展。SoapUI专门针对HTTP类型的两种接口,其初衷更是专门测试Soap类型接口,对于其他协议的接口不支持。Postman更是轻量级,定位也不同,可用来测试Rest接口。
工具 |
接口类型 |
测试类型 |
SoapUI |
Soap、Rest |
功能、压力、安全 |
Jmeter |
Rest、Soap等 可扩展WebSocket、socket |
功能、压力 |
Postman |
Rest |
功能 |
2,数据源、生成器、进行参数化
工具 |
数据源 |
生成器 |
循环 |
SoapUI |
DataSource,数据可来源于文件、目录、数据库、Excel、Grid等 |
DataGen |
DataSource Loop |
Jmeter |
CSV Data Set Config读取csv文件 |
Random Variable 计数器 |
ForEach控制器 循环控制器 While控制器 |
Postman |
Runner中运行时,可加载CSV/JSON文件 |
无(只能通过脚本) |
Runner中的Iteration |
3,结果解析、展示:
工具 |
结果 |
日志 |
报告 |
SoapUI |
Project-OverView、TestSuites TestSuite-TestCases TestCase-TestSteps |
SoapUI全局多种log TestSuite log TestCase log Request log |
Project report TestSuite report TestCase report (PDF/HTML/XML/CSV) |
Jmeter |
各种监听器 |
统一的Jmeter log |
监听器可导出到文件 并可导出JTL、CSV文件、通过插件可导出HTML(Jmeter3自带) |
Postman |
Send可查看Request的Response Runner可查看运行的Result |
Postman console Chrome DevTools |
Request的Response以及Runner的Result均可导出json |
4,团队协作
SoapUI:本身一个project是一个xml文件,但是可以通过配置变成一系列文件夹,每个Case、每个Suite均是独立的文件,这样可通过svn/git进行团队协作。支持性较好。
Jmeter:一个TestPlan也是一个jmx(xml)文件,无法分割,但Jmeter有一个合并的功能,允许将多个文件合并在一起。只能每个团队成员自己建立一个TestPlan,分功能块进行测试。最后整理合并。
Postman:有团队协作的功能,需要付费。
如果选择工具的话,选择的原则:
1,免费
2,能够快速学习使用:时间为一周
3,支持团队合作
4,支持接口关联
根据以上四点:
1,SoapUI是开源的,SoapUI pro是收费,功能比前者强大,具体强大在哪里,请看官网介绍:https://www.soapui.org/professional/soapui-pro/soapui-vs-soapui-pro.html
因为SoapUI的功能开源有限,使用起来也是很麻烦,所以不考虑这款工具
2,Postman没有团队协作功能,该功能需要收费
不考虑这款工具做接口自动化
3,jmeter功能强大,支持模块合并可以实现团队协作,且是开源的
所以如果用工具实现自动化接口测试推荐jmeter
(二)脚本实现
脚本实现需要一门编程语言做支撑,根据语言的灵活性和热度,选择Python作为脚本实现的支撑语言
实现思路:
1,使用Excel文件管理测试用例
2,使用requests模块来模拟请求,并接受响应
3,使用Excel或HTML来展示测试报告
实现方式:自己编写代码,可集成在Jenkins
实现时间:首次版本预估1个月
(三)工具+脚本实现
1.Python+Postman
Postman可以使用功能EXPORT COLLECTION 来导出json文件,然后通过Python解析后,使用requests库来发送请求,并进行结果校验,生成报告通过邮件模块发送给相关人员。
这种方式,接口用例是用Postman来管理
实现方式:自己编写代码,可集成在Jenkins
实现时间:2周
2.Postman+Newman+Jenkins
Postman写API自动化测试脚本,用newman命令行运行所有测试案例,配置jenkins来运行API自动化测试脚本,使API达到完全自动化测试!测试用例Postman来管理。
如何部署:https://blog.csdn.net/chengly0129/article/details/68486016
实现方式:搭建Postman+Newman+Jenkins
实现时间:2周
3.Python+Testlink+Jenkins
使用同行已经实现的框架,框架功能如下:
源码地址:http://blog.sina.com.cn/s/blog_13cc013b50102w94u.html
1、框架集成了Testlink,可使用Testlink灵活对测试项目,测试计划,测试用例进行管理
2、可通过配置文件灵活配置运行模式,支持按测试项目、测试计划、测试套件批量运行执行用例
3、支持HTTPS,HTTP,WebService协议,支持POST, GET方法,支持JSON,非JSON数据格式的请求,支持多种形式的数据校验
4、可自动生成HTML可视化接口测试报告
5、可根据配置在测试完成后,自动发送测试报告邮件
6、支持文件、控制的日志打印,可分别控制开关
7、支持模块化开发
8、可集成Jenkins自动运行脚本
特点:测试用例使用Testlink来管理
实现时间:三周
(四)选择API自动化测试实现方式
以上三种方式,选其中一种来实现:
倾向于工具+脚本实现:Postman+Newman+Jenkins
实现时间:三周
原因:
1,测试组可以统一管理手工用例和自动化用例
2,可以快速实现,且开发这个框架的作者,能够联系到,使用中出现了问题,可以快速得到解决
3,使用中想增加功能可以自己修改代码去添加