前言

根据之前部署好的测试环境,进行接口自动化测试的方案设计及Jmeter脚本开发。测试方案设计过程中采用了数据分离和对象分离等思路,因此直接通过特定的测试用例文档来驱动整个自动化接口测试的执行,相关测试人员只需在后期更改测试用例即可维护自动化接口测试,完成相关测试任务。

特别提示:

知识是用来分享的,但是也要尊重作者的权益,转载请注明出处,未经本人允许不可用于商业目的。

自动化接口测试方案:

测试用例模板编写:

为了批量执行待测试的接口,我们采用测试用例模板的方式在jmeter中进行参数化,用例只主要包括接口名称、接口路径、接口传输参数、返回值验证、前期验证SQL、前期SQL结果验证、后期验证SQL、后期SQL结果验证字段等,用例文件格式为文本文件(制表符分隔),如下图所示:(建议以Excel方式打开)

Jmeter脚本开发:

1、在jmeter的测试计划中添加“线程组”,如下图所示:

2、选中线程组后添加配置元件“HTTP请求默认值”,如下图所示:

在默认http请求中添加服务器IP和端口号,如下图所示:

3、选中线程组右键配置元件中的“JDBC Connection Configuration”,如下图所示:

输入数据库连接参数,如下图所示:(以oracle为例)

备注:建议使用2.13版本并且将oracle所需的jar拷贝到jmeter安装路径下的lib文件夹中,或者在测试计划界面的Library下直接添加,如下图所示:

4、选中线程组右键在Sampler中选择“BeanShell Sampler”,如下图所示:

在BeanShell Sampler中填写读取用例条数代码,如下图所示:

5、选中线程组右键在逻辑控制器中选择“简单控制器”,如下图所示:

修改名称为:前期清理,之后在其下右键添加Sampler中的“JDBC Request”,并配置相关参数,如下图所示:

备注:JDBC Request中的Variable Name要与JDBC Connection Configuration中的保持一致,sql执行中输入要初始化数据库的语句。

6、选中线程组右键控制器中选择添加“循环控制器”,并在循环控制器下方添加配置元件中的“CSV Data Set Config”(注意一定要在循环控制器下添加),并将存储有接口测试用例的txt文件配置到其中,用于参数化操作,如下图所示:

备注:此处根据测试用例文档进行相关字段参数化对照表:

接口名称

接口路径

接口传输参数

返回值验证

前期验证SQL

前期SQL结果验证

后期验证SQL

后期SQL结果验证

ApiName

Url

Body

Assert

PreSQL

PreAssert

PostSQL

PostAssert

7、在循环控制器下添加简单控制器,并在其下添加前期验证和后期验证的“JDBC Request”,方式可参考步骤5中的操作,同是在简单控制器下还需添加sampler中的“HTTP请求”,并配置相关参数,如下图所示:

调整前期验证、接口请求、后期验证等执行顺序,如下图所示:

调整顺序后,在前期验证、接口请求、后期验证下添加响应断言组件,对响应结果进行正确性判断。如下图所示:

最后通过添加“察看结果树”和“Debug Sampler”进行脚本调试,调试通过后保存到指定文档中。

Jmeter+Ant+Jenkins接口自动化测试(二)_测试方案设计及jmeter脚本开发的更多相关文章

  1. Jmeter+Ant+Jenkins接口自动化测试(一)_环境部署

    前言: 2017年最后一个月份,今天抽出时间把之前的一些记录分享出来,也为今年画上个简单的句号吧,无论好与坏,无论成功与失败,简单的记忆,不要留下点点空白. 特别提示: 知识是用来分享的,但是也要尊重 ...

  2. Jmeter+ant+jenkins接口自动化测试 平台搭建(一)

    平台简介 一个完整的接口自动化测试平台需要支持接口的自动执行,自动生成测试报告,以及持续集成.Jmeter 支持接口的测试,Ant 支持自动构建,而 Jenkins 支持持续集成,所以三者组合在一起可 ...

  3. Jmeter+Ant+Jenkins接口自动化测试框架搭建

    前言 软件开发的V模型大家都不陌生,其中测试阶段分为单元测试→功能测试→系统测试→验收测试.其中单元测试一般由开发同学们自己完成,大部分测试具体实施(这里不包括用例设计)是从单体功能测试开始着手的. ...

  4. jmeter+ant+jenkins接口自动化测试框架

    大致思路:Jmeter可以做接口测试,也能做压力测试,而且是开源软件:Ant是基于Java的构建工具,完成脚本执行并收集结果生成报告,可以跨平台,Jenkins是持续集成工具.将这三者结合起来可以搭建 ...

  5. Jmeter+ant+jenkins接口自动化测试 平台搭建(三)

    四.报告优化 Jmeter 默认生成报告不是很详细,因此我们需要进行优化.这里我们使用新的报告模板:默认的报告模板是 jmeter-results-detail-report_21.xsl 先上效果图 ...

  6. Jmeter+ant+jenkins接口自动化测试 平台搭建(二)

    一.依赖文件配置 1.在ant目录C:\apache-ant-1.10.5下新建一个demo文件夹,并将jmeter测试脚本放在该文件夹中 2.将\apache-jmeter-3.3\extras下面 ...

  7. jmeter+ant+jenkins 接口自动化测试持续集成(送源码)

     9.1  安装和介绍 JMeter 安装文件路径:https://pan.baidu.com/s/1kVJdnuv. JMeter 是轻量级的开源且稳定的自动化测试工具. 思路:在接口说明文档中整理 ...

  8. ant +jmeter+jenkins接口自动化测试二

    [Jmeter篇]Jmeter+Ant+Jenkins接口自动化测试集成之半路逆转(二) 橙子探索测试发表于橙子探索测试订阅 72 [Jmeter篇]jmeter+Ant+Jenkins接口自动化测试 ...

  9. 使用jmeter+ant进行接口自动化测试(数据驱动)之二:利用apache-ant执行测试用例并生成HTML格式测试报告

    在 使用jmeter+ant进行接口自动化测试(数据驱动)之一 介绍了如何使用csv文件来批量管理接口 本次接着介绍如何利用apache-ant执行测试用例并生成HTML格式测试报告 ①下载安装 ap ...

随机推荐

  1. KnockoutJS 3.X API 第五章 高级应用(2) 控制后代绑定

    注意:这是一种高级技术,通常仅在创建可重用绑定的库时使用. 默认情况下,绑定仅影响它们应用到的元素. 但是如果你想影响所有的后代元素呢? 为此,只需从绑定的init函数中返回{controlsDesc ...

  2. 安卓第十一天笔记-Intent与inter-filter配置

    安卓第十一天笔记-Intent与inter-filter配置 Intent与inter-filter配置 1.Intent对象简述 Android应用中有包含三种重要组件:Activity,Servi ...

  3. Java native(转)

    Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能. 可以将 ...

  4. WPF之TreeList的实现方法1

    WPF之TreeList的实现方法(一) 做项目的时候根据需求,WPF现有的控件不能完全满足我们的需求, 很多时候我们需要对现有的控件做一下加工. 最简单的我们可能会把Tree转换成List形式有的叫 ...

  5. UVA11825 黑客的攻击 Hackers' Crackdown 状压DP,二进制,子集枚举

    题目链接Click Here [题目描述] 假如你是一个黑客,侵入了一个有着\(n\)台计算机(编号为\(1.2.3....n\))的网络.一共有\(n\)种服务,每台计算机都运行着所有服务.对于每台 ...

  6. 爬虫基础——HTTP基本原理

    ## 学习爬虫务必从了解请求网页的工作流程和网页的组成原理开始,不然直接去学爬虫操作像是请求库等等,大概率会知其然而不知其所以然(个人体会) URL和HTTP简介 URL(Uniform Resour ...

  7. 分组加密的四种模式(ECB、CBC、CFB、OFB)

    加密一般分为对称加密(Symmetric Key Encryption)和非对称加密(Asymmetric Key Encryption).对称加密又分为分组加密和序列密码.分组密码,也叫块加密(bl ...

  8. flask 使用Flask-SQLAlchemy管理数据库(连接数据库服务器、定义数据库模型、创建库和表)

    使用Flask-SQLAlchemy管理数据库 扩展Flask-SQLAlchemy集成了SQLAlchemy,它简化了连接数据库服务器.管理数据库操作会话等各种工作,让Flask中的数据处理体验变得 ...

  9. 最大频率栈 Maximum Frequency Stack

    2018-10-06 22:01:11 问题描述: 问题求解: 为每个频率创建一个栈即可. class FreqStack { Map<Integer, Integer> map; Lis ...

  10. ubuntu系列-安装google浏览器

    转载:http://www.linuxidc.com/Linux/2013-10/91857.htm 对于刚刚开始使用Ubuntu并想安装谷歌Chrome浏览器的新用户来说,本文所介绍的方法是最快捷的 ...