<自动化测试方案_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,使用中想增加功能可以自己修改代码去添加
<自动化测试方案_6>第六章、API自动化测试的更多相关文章
- <自动化测试方案_3>第三章、怎么样实现自动化测试?(How)
		第三章.怎么样实现自动化测试?(How) 自动化测试分为:代码单元自动化测试.API接口自动化测试.UI自动化测试 代码单元自动化测试,一般是无法做到的,因为项目的原因,代码单元是不做自动化,其测试是 ... 
- <自动化测试方案_5>第五章、代码单元自动化测试
		第五章.代码单元自动化测试 代码单元测试需要根据编程语言,选择单元测试框架,然后访问类方法,函数.代码单元测试做自动化,相比API.UI自动化做起来更加麻烦,建议放到待API自动化测试.UI自动化测试 ... 
- <自动化测试方案_7>第七章、PC端UI自动化测试
		第七章.PC端UI自动化测试 UI自动化测试又分为:Web自动化测试,App自动化测试.微信小程序.微信公众号UI层的自动化测试工具非常多,比较主流的是UFT(QTP),Robot Framework ... 
- <自动化测试方案_4>第四章、选型标准
		第四章.选型标准 1,免费 2,工具可维护.可扩展 3,支持团队工作 
- <自动化测试方案书>方案书目录排版
		自动化测试方案书 一.介绍 QQ交流群:585499566 这篇是一个系列,用来给需要做自动化测试方案的人做个参考,文章的内容是我收集网上和自己工作经验所得,希望能够给你们有所帮助 背景:因为工作需要 ... 
- XXX接口自动化测试方案
		XXX接口自动化测试方案 1.引言 1.1 文档版本 版本 作者 审批 备注 V1.0 XXXX 创建测试方案文档 1.2 项目情况 项目名称 XXX 项目版本 V1.0 项目经理 XX 测试人员 X ... 
- <自动化测试方案_2>第二章、自动化测试是什么?(What)
		第二章.自动化测试是什么?(What) 自动化测试是相对于手工测试而言:通过脚本自动去执行测试用例,从而代替人完成测试工作. 自动化测试相对手工测试优缺点 测试方式 优点 缺点 手工测试 1,完整的对 ... 
- App自动化测试方案
		App自动化测试方案 1.1 概述 什么是App自动化?为什么要做App自动化? App自动化是指给 Android或iOS上的软件应用程序做的自动化测试. 手工测试和自动化测试的对比如下: 手工测 ... 
- 基于Ruby的watir-webdriver自动化测试方案与实施(一)
		基于Ruby的watir-webdriver自动化测试方案与实施(五) 基于Ruby的watir-webdriver自动化测试方案与实施(四) 基于Ruby的watir-webdriver自动 ... 
随机推荐
- [原创]K8Cscan插件之多种方式系统版本探测
			[原创]K8 Cscan 大型内网渗透自定义扫描器 https://www.cnblogs.com/k8gege/p/10519321.html Cscan简介:何为自定义扫描器?其实也是插件化,但C ... 
- ES6躬行记(8)——数字
			一.进制 ES6不仅完善了数字的八进制形式,还补充了一种十六进制形式,并且添加了全新的二进制形式.下面的三个变量分别表示八进制.十六进制和二进制的10,注释中给出了该进制的另一种写法. var oct ... 
- Nacos发布0.5.0版本,轻松玩转动态 DNS 服务
			阿里巴巴微服务开源项目Nacos于近期发布v0.5.0版本,该版本主要包括了DNS-basedService Discovery,对Java 11的支持,持续优化Nacos产品用户体验,更深度的与Sp ... 
- spring springmvc  mybatis maven 项目整合示例-导航页面
			spring原理 实践解析-简单的helloworld spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包 spring原理案例-基本项目 ... 
- 面试问烂的 Spring AOP 原理、SpringMVC 过程(求求你别问了)
			Spring AOP ,SpringMVC ,这两个应该是国内面试必问题,网上有很多答案,其实背背就可以.但今天笔者带大家一起深入浅出源码,看看他的原理.以期让印象更加深刻,面试的时候游刃有余. Sp ... 
- [转]Virtualbox主机和虚拟机之间文件夹共享及双向拷贝(Windows<->Windows, Windows<->Linux)
			本文转自:https://www.jb51.net/article/97271.htm 最近学习Virtualbox的一些知识,记录下,Virtualbox下如何实现主机和虚拟机之间文件夹共享及双向拷 ... 
- [心得]如何快速利用SqlMap做安全檢測
			SqlMap的介紹我就不詳提啦!SqlMap是用來尋找與做Sql-injection的一款工具 在使用前你需要安裝python唷!安裝的過程我們就不介紹了. 直接來看如何快速使用SqlMap吧! 這裡 ... 
- 第一册:lesson thirty five。
			原文: Our village . This is a photograph of our village. Our village is in a valley. It is between to ... 
- 有关于MVC SignalR的问题
			刚拜读 @Learning hard 的 [Asp.net 开发系列之SignalR篇]专题一:Asp.net SignalR快速入门 跟着博文一步步操作,这是新人的学习方式 然而笔者的开发环境和 @ ... 
- MySQL添加列、删除列,创建主键等常用操作总结
			一. 列常用操作 ① 添加新的一列test_column,并将其作为主键,FIRST将其放在表中第一行,auto_increement是自动增长 alter table test_table add ... 
