第六章、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自动化测试的更多相关文章

  1. <自动化测试方案_3>第三章、怎么样实现自动化测试?(How)

    第三章.怎么样实现自动化测试?(How) 自动化测试分为:代码单元自动化测试.API接口自动化测试.UI自动化测试 代码单元自动化测试,一般是无法做到的,因为项目的原因,代码单元是不做自动化,其测试是 ...

  2. <自动化测试方案_5>第五章、代码单元自动化测试

    第五章.代码单元自动化测试 代码单元测试需要根据编程语言,选择单元测试框架,然后访问类方法,函数.代码单元测试做自动化,相比API.UI自动化做起来更加麻烦,建议放到待API自动化测试.UI自动化测试 ...

  3. <自动化测试方案_7>第七章、PC端UI自动化测试

    第七章.PC端UI自动化测试 UI自动化测试又分为:Web自动化测试,App自动化测试.微信小程序.微信公众号UI层的自动化测试工具非常多,比较主流的是UFT(QTP),Robot Framework ...

  4. <自动化测试方案_4>第四章、选型标准

    第四章.选型标准 1,免费 2,工具可维护.可扩展 3,支持团队工作

  5. <自动化测试方案书>方案书目录排版

    自动化测试方案书 一.介绍 QQ交流群:585499566 这篇是一个系列,用来给需要做自动化测试方案的人做个参考,文章的内容是我收集网上和自己工作经验所得,希望能够给你们有所帮助 背景:因为工作需要 ...

  6. XXX接口自动化测试方案

    XXX接口自动化测试方案 1.引言 1.1 文档版本 版本 作者 审批 备注 V1.0 XXXX 创建测试方案文档 1.2 项目情况 项目名称 XXX 项目版本 V1.0 项目经理 XX 测试人员 X ...

  7. <自动化测试方案_2>第二章、自动化测试是什么?(What)

    第二章.自动化测试是什么?(What) 自动化测试是相对于手工测试而言:通过脚本自动去执行测试用例,从而代替人完成测试工作. 自动化测试相对手工测试优缺点 测试方式 优点 缺点 手工测试 1,完整的对 ...

  8. App自动化测试方案

    App自动化测试方案 1.1  概述 什么是App自动化?为什么要做App自动化? App自动化是指给 Android或iOS上的软件应用程序做的自动化测试. 手工测试和自动化测试的对比如下: 手工测 ...

  9. 基于Ruby的watir-webdriver自动化测试方案与实施(一)

    基于Ruby的watir-webdriver自动化测试方案与实施(五)   基于Ruby的watir-webdriver自动化测试方案与实施(四)   基于Ruby的watir-webdriver自动 ...

随机推荐

  1. mysql 开发基础系列17 存储过程和函数(上)

    一. 概述 存储过程和函数是事先经过编译并存储在数据库中的一段sql语句集合,可以简化应用开发人员的很多工作,减少数据在数据库与应用服务器之间的传输,提高数据处理效率是有好处的.存储过程和函数的区别在 ...

  2. .NET西安社区 [拥抱开源,又见 .NET] 活动简报

    拥抱开源, 又见 .NET」 随着 .NET Core的发布和开源,.NET又重新回到了人们的视野.除了开源.跨平台.高性能以及优秀的语言特性,越来越多的第三方开源库也出现在了Github上——包括M ...

  3. 函数计算 Python 连接 SQL Server 小结

    python 连接数据库通常要安装第三方模块,连接 MS SQL Server 需要安装 pymssql .由于 pymsql 依赖于 FreeTDS,对于先于 2.1.3 版本的 pymssql,需 ...

  4. eclipse中打断点debug无效

    今天在测试的时候,发现在eclipse中打了断点,debug居然无效.结果是因为我无意开启了另一个功能,Run-->Skip All Breakpoints (忽略所有的断点) 快捷键:Ctrl ...

  5. Socket进程通信机制及应用

    Socket通常称为“套接字”,用于描述IP地址和端口,是一个通信链的句柄.应用程序通过套接字向网络发出请求或者应答网络请求.Socket即不是一个程序,也不是一个协议,其只是操作系统提供的通信层的一 ...

  6. Java设计模式之《构建者模式》及应用场景

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6553374.html 构建者模式,又称建造者模式,将一部负责对象的构建分为许多小对象的构建 ...

  7. TP3.2 URL传参及模板输出

    本例子结合layer.open使用 HTML代码 onclick="return stulist(167,25);" JS代码 <script type="text ...

  8. [转]angular 禁止缓存

    本文转自:https://www.cnblogs.com/jonney-wang/p/9797906.html angular 单页面开发,会存在和管理很多HTML和JS文件,缓存有时是个麻烦. 在开 ...

  9. BurpSuiteProxy安装使用

    第一步先安装jdk    https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html  ...

  10. async,await,Task 的一些用法

    async,await,Task 的一些用法 private void Form1_Load(object sender, EventArgs e) { Display(); } public asy ...