转载:http://www.sohu.com/a/133218497_575744

关于接口测试,笔者认为其难点分别在如下几方面:接口参数的获取和输入、测试数据的准备、场景的串联、测试结果的断言。

接下来笔者将通过介绍 BlazeMeter+Jmeter 这两种工具来解决以上问题。

BlazeMeter 使用方法

未使用 BlazeMeter 之前,笔者获取接口的方法是在浏览器中通过 F12 获取到地址和参数,然后将此接口的数据放置 Jmeter 中进行请求的录制。这样的方式耗费了大量的时间。

有了BlazeMeter 之后,我们可以在浏览器中模拟用户的操作,BlazeMeter 会将所有的接口记录下来。

笔者也曾经试过使用 BadBoy 录制工具,此工具默认支持的是 IE浏览器,但是大多数系统,尤其是内部系统,对 IE 的支持都不够友好。所以笔者选择了支持 Chrome的 BlazeMeter 工具。

安装方式:

1)输入地址

2)操作如下

搜索栏输入 blazemeter

点击 ADD TO CHROME,显示红色的“B”表示安装成功

BlazeMeter 的使用方式很简单:登陆、点击 start、停止录制、导出.jmx,录制完以后将 jmx 文件导入 Jmeter 中。

以下是笔者曾经在某项目中进行了的实验及实验结果:

Jmeter

1)测试数据的准备

解决方案:前置条件中添加初始化 sql 语句

比如此 case。在进行 Level 2审批之前,A 需要 Level 1审批通过,然后 A 的状态会变更为待 Level 2审批,等待 Levle 2审批通过以后其状态会变更为待 Level 3审批。所以笔者在此的解决方案为:在数据库中直接把此渠道的状态更新为待 Level 2审批,直接测试待 Level 2审批的接口。

使用方式:

下载 mysql-connector-java-5.1.39-bin.jar 包

右键测试计划 Add->Config Element->JDBC Connection Configuration,在database url 中输入数据库的 ip 和端口

Username 和 password ,输入数据库用户名和密码

2)场景的串联

在 A 接口输出是 B 接口输入的情况下,我们需要将 A 接口和 B 接口联合进行测试。

在这个 case 中,需要创建A,但是在创建 A 之前需要创建 B。

解决方案:先创建 B。由于 B 的参数是不能重复的,所以笔者通过 Jmeter 自带的函数 UUID 取得一个随机数。

接口的返回参数如下,我们需要取得接口,"result":{"categoryCode":"ABC”} 我们需要取得此接口的 result 中 categoryCode 作为创建 B 的入参

解决方案:右键 http 请求 Add->Post Processors->JSON PathPostProcessor

最后将 variablenames 中当做参数,通过这种方式实现接口的串联。

3)测试结果的断言

Jmeter 提供了多种方式的断言,以下为笔者使用过的:

Beanshell 断言:

这种方式主要是用于更新数据库时,判断数据库的状态是否被更新。

例如此case。A 立项拒绝,通过调用接口以后需要去判断数据的数据是否真的更新为9(被拒绝)。笔者采用的方式是获取数据的状态并赋值给 result variablename。

判断获取状态的值是否是9,如果不是9则此 case 测试失败。

ResponseAssertion 断言:

ResponseAssertion 断言主要用于数据查询,例如:查询的回来数据字段包括了 SUCCESS 则测试通过。

在项目中的运用

编写完接口以后,笔者用 ANT 打包生成 HTML 文件,把它放到 JEKINS 中。

每次开发提测时我们点击 BUILD 查看对应的 HTML 文件,就可以把此项目中的接口测试结果开放给项目组的所有成员。以上为笔者在项目中的实际运用。

BlazeMeter+Jmeter 搭建接口测试框架的更多相关文章

  1. JAVA+Maven+TestNG搭建接口测试框架及实例

    1.配置JDK 见另一篇博客:http://www.cnblogs.com/testlurunxiu/p/5933912.html 2.安装Eclipse以及TestNG Eclipse下载地址:ht ...

  2. 2--JAVA+Maven+TestNG搭建接口测试框架搭建

    1.配置JDK 2.安装Eclipse以及TestNG Eclipse下载地址:http://beust.com/eclipse TestNG安装过程:输入网址:http://beust.com/ec ...

  3. Golang搭建接口测试框架

    测试报告 使用goconvey作为测试报告,使用方法: 安装 $ go get github.com/smartystreets/goconvey $ $GOPATH/bin/goconvey 导入包 ...

  4. jmeter --- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)

    jmeter --- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter) 一.环境准备: 1.JDK:http://www.oracle.com/technetwork/java/jav ...

  5. 初探接口测试框架--python系列7

    点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...

  6. 初探接口测试框架--python系列2

    点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...

  7. 初探接口测试框架--python系列3

    点击标题下「微信」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是我们期 ...

  8. 初探接口测试框架--python系列4

    点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...

  9. 初探接口测试框架--python系列5

    点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...

随机推荐

  1. 常用排序算法的Python实现

    冒泡排序 算法思想: 对于一组需要排序的数据,对于相邻的两个数进行比较,使较大(或者较小)的数一直向后推,经过多层排序之后,使整个序列是有序的. 算法实现: def bubble_sort(L): l ...

  2. 【BZOJ 3812】 3812: 主旋律 (容斥原理**)

    3812: 主旋律 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 235  Solved: 196 Description 响应主旋律的号召,大家决定 ...

  3. [BZOJ4289][PA2012]TAX(最短路)

    首先考虑一种暴力做法,为每条边拆成两条有向边,各建一个点.若某两条边有公共点,则在边所对应的点之间连一条边,权值为两条边中的较大值.这样跑最短路是$O(m^2\log m)$的. 用类似网络流中补流的 ...

  4. HDU 6141 I am your Father!(最小树形图)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=6141 [题目大意] 给出一个有向图,求1点为根的最小树形图使得第n个点的直接父亲编号最小 [题解] ...

  5. hdu 1561 树形dp+分组背包

    题意:就是给定n个点,每个地点有value[i]的宝物,而且有的宝物必须是另一个宝物取了才能取,问取m个点可以获得的最多宝物价值. 一个子节点就可以返回m个状态,每个状态表示容量为j(j<=m) ...

  6. bzoj 1029 贪心

    贪心的一种,维护一种尽可能优的状态(即不会比最优解差),将这种状态保持到最后. /*********************************************************** ...

  7. [转]Eclipse 项目转移到Android Studio遇到的问题

    1.Android Studio直接导入项目是copy原项目的,无法纳入代码管控 解决方案: 英文地址:http://developer.android.com/sdk/installing/migr ...

  8. CentOS 6.9开启iptables的日志实现调试

    系统日志配置在CentOS 5上叫syslog,而在CentOS 6上叫rsyslog(增强版的syslog),CentOS 5上的配置文件在/etc/syslog.conf下,而CentOS 6在/ ...

  9. PSCollectionView瀑布流实现

    [-] 一基本原理 二具体实现 相关数据结构 视图更新方式 relayoutViews方法 removeAndAddCellsIfNecessary方法 select方法 重用数据块视图机制 三使用方 ...

  10. How to open a web site with the default web browser in a NEW window

    http://delphi.about.com/cs/adptips2004/a/bltip0504_4.htm When using ShellExecute (as explained in th ...