BlazeMeter+Jmeter 搭建接口测试框架
转载: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 搭建接口测试框架的更多相关文章
- JAVA+Maven+TestNG搭建接口测试框架及实例
1.配置JDK 见另一篇博客:http://www.cnblogs.com/testlurunxiu/p/5933912.html 2.安装Eclipse以及TestNG Eclipse下载地址:ht ...
- 2--JAVA+Maven+TestNG搭建接口测试框架搭建
1.配置JDK 2.安装Eclipse以及TestNG Eclipse下载地址:http://beust.com/eclipse TestNG安装过程:输入网址:http://beust.com/ec ...
- Golang搭建接口测试框架
测试报告 使用goconvey作为测试报告,使用方法: 安装 $ go get github.com/smartystreets/goconvey $ $GOPATH/bin/goconvey 导入包 ...
- jmeter --- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)
jmeter --- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter) 一.环境准备: 1.JDK:http://www.oracle.com/technetwork/java/jav ...
- 初探接口测试框架--python系列7
点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...
- 初探接口测试框架--python系列2
点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...
- 初探接口测试框架--python系列3
点击标题下「微信」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是我们期 ...
- 初探接口测试框架--python系列4
点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...
- 初探接口测试框架--python系列5
点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...
随机推荐
- Implementing x / 6 Using Only Bit Manipulations
This is an interesting question from one of the lab assignments in Introduction to Computer Systems, ...
- Failed to resolve directive: el vue2报错
vue2报错 Failed to resolve directive: el 为什么会报这个错呢,主要还是因为vue升级的时候,v-el在vue2.x以后被淘汰.使用新的标签ref替换v-el,接下来 ...
- MODI出现ORC RUNNING ERROR的解决方法
stackflow都没个靠谱的说法,最后还是csdn上看到的.转一个备用.http://bbs.csdn.net/topics/390135443 由于直接执行Mircosoft Office Doc ...
- Python入门,以及简单爬取网页文本内容
最近痴迷于Python的逻辑控制,还有爬虫的一方面,原本的目标是拷贝老师上课时U盘的数据.后来发现基础知识掌握的并不是很牢固.便去借了一本Python基础和两本爬虫框架的书.便开始了自己的入坑之旅 言 ...
- bzoj 1067 分情况讨论
这道题考察人的严谨,各种情况分类讨论. #include <cstdio> #include <algorithm> #include <map> #define ...
- 初探Delphi中的插件编程
前言 我写Delphi程序是从MIS系统入门的,开始尝试子系统划分的时候采用的是MDI窗体的结构.随着系统功能的扩充,不断有新的子系统加入系统中,单个工程会变得非常大,每次做一点修改都要重新编译,单个 ...
- 深入Delphi下的DLL编程
深入Delphi下的DLL编程 作者:岑心 引 言 相信有些计算机知识的朋友都应该听说过“DLL”.尤其是那些使用过windows操作系统的人,都应该有过多次重装系统的“悲惨”经历——无论再怎样小心, ...
- Spring EL运算符实例
Spring EL支持大多数标准的数学,逻辑和关系运算符. 例如, 关系运算符 – 等于 (==, eq), 不等于 (!=, ne), 小于 (<, lt), 小于或等于 (<= , l ...
- 【张宴】PHP在金山游戏运营中的应用
PPT下载地址1(国外服务器):http://blog.s135.com/attachment/201105/2011phptc_zy.zip PPT下载地址2(国内服务器):http://ishar ...
- 要使用C#实现一个ActiveX控件
要使用C#实现一个ActiveX控件,需要解决三个问题: 1.使.NET组件能够被COM调用 2.在客户机上注册后,ActiveX控件能通过IE的安全认证 3.未在客户机上注册时,安装包能通过IE的签 ...