第六章、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. Mac OS Sierra如何打开任何来源

    我们知道在Mac升级到最新的Mac OS Sierra系统之后,随之而来的是第三方应用都无法打开,提示的是无法打开或扔进废纸篓.而在之前的版本系统中,我们知道在系统偏好设置-->安全性与隐私-- ...

  2. python(leetcode)-14最长公共前缀

    编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...

  3. 使用Docker发布DNC项目

    项目结构 可以忽略中间三个Console项目 ApiCenter 是一个WebAPI项目,引用了NLog.MQ项目 ApiCenter使用5001端口 public static IWebHost B ...

  4. mysql 开发进阶篇系列 50 表的数据导入(load data infile,mysqlimport )

    一.概述 上篇讲到的表的数据导出(select .. into outfile 或者mysqldump),这篇继续讲表的数据导入,导入也同样有二个方法,分别是load data infile... 和 ...

  5. Android--通知之Toast

    前言 这篇博客讲解一下Android下的一个简单信息提示的方式:Toast.如果一直看我的博客,会发现在之前的Demo中,一直有用到Toast去提示消息,在这篇博客中就专门讲它.Toast提供一个浮动 ...

  6. 【Android基础】利用Intent在Activity之间传递数据

    前言: 上一篇文章给大家聊了Intent的用法,如何用Intent启动Activity和隐式Intent,这一篇文章给大家聊聊如何利用Intent在Activity之间进行沟通.   从一个Activ ...

  7. 微信小程序跳转小程序

    <navigator target="miniProgram" open-type="navigate" app-id="{{BappId}}& ...

  8. 一些不常用但又很有用的css小tips

    1.box-sizing:border-box box-sizing有三个属性:content-box(默认值) || border-box || inhreit.第一个自然不用说,比如我们设置一个d ...

  9. java扫盲 接口 Enumeration

    摘要: 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 记起2年前,高中生活最多的是老师的批评.谢谢! -泥沙砖瓦浆木匠 ...

  10. 详解Javascript中prototype属性(推荐)

    在典型的面向对象的语言中,如java,都存在类(class)的概念,类就是对象的模板,对象就是类的实例.但是在Javascript语言体系中,是不存在类(Class)的概念的,javascript中不 ...