jmeter做接口测试怎么将数据传到下一个接口

当前访客身份:游客 [
分享知识,传递价值
:引用来自“wangmenagjie”的评论meter-results-d...
:我想说你在linuix安装的吗
:引用来自“hunanmen”的评论这个jar包都需要哪些...
:这个jar包都需要哪些啊?
:为何不用Postman?这样写代码,会不会很累啊?...
:引用来自“江诗”的评论java.lang.IllegalStateE...
:java.lang.IllegalStateException: Cannot get a...
:Keywords=ExcelUtils.getCellDate(sRowNum, Cont...
:引用来自“wangmenagjie”的评论meter-results-d...
今日访问:2
昨日访问:40
本周访问:2
本月访问:3921
所有访问:20584
http接口测试——Jmeter接口测试实例讲解
发表于8个月前( 19:00)&&
阅读(13968)&|&评论()
0人收藏此文章,
最近做的项目需要测试很多接口,上网查一查,发现完整讲述接口测试的资料太少,所以最近自己做完这个项目,把测试的东西整理一下和大家分享一下,希望对看到的人有所帮助
&&&&一、测试需求描述
& &1、 本次测试的接口为http服务端接口
& &2、 接口的主要分成两类,一类提供给查询功能接口,一类提供保存数据功能接口,这里我们举例2个保存数据的接口,因为这两个接口有关联性,比较有代表性;
& & 3、接口描述:
&&&&&&&&保存信用卡账户信息接口:
&&&&&&&&& & 传入参数:& &
&&&&&&&&& & & & args={
&&&&&&&&& & & & & & "clientNo":"",
&&&&&&&&& & & & & & "alias": "**信用卡2",
&&&&&&&&& & & & & & "cardName": "长城*****卡2",
&&&&&&&&& & & & & & &"cardNo": "51",
&&&&&&&&& & & & & & }
&&&&&&&&& & 传出参数:
&&&&&&&&& & & & & & 保存成功:{"returnCode":"0","returnMsg":"保存成功"}
&&&&&&&&& & & & & & 保存失败:{"returnCode":"1","returnMsg":"保存失败"}
&&&&&&&&& & 保存逻辑:数据传入进来,验证通过,保存到信用卡账户表中
&&&&&&&&保存信用卡账单接口:
&&&&&&&&& & 传入参数:
&&&&&&&&& & & & args={
&&&&&&&&& & & & & & "clientNo":"",
&&&&&&&&& & & & & & "accountName": "测试",
&&&&&&&&& & & & & & "billDate": "08",
&&&&&&&&& & & & & & "billMonth": "201509",
&&&&&&&&& & & & & & &"cardNo": "51",
&&&&&&&&& & & & & & "currentPayment": "欠款459.80",
&&&&&&&&& & & & & & "paymentDate": " 09:00:00",&
&&&&&&&&& & & & & & }
&&&&&&&&& & 传出参数:&
&&&&&&&&& & & & & & 保存成功:{"returnCode":"0","returnMsg":"保存成功"}
&&&&&&&&& & & & & & 保存失败:{"returnCode":"1","returnMsg":"保存失败"}
& & & & &&&&&&&&&&&&&保存逻辑:保存时先去信用卡信息表查看clientNo对应的表是否存在,如存在则数据校验通过,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&将数据保存进入信用卡账单表
注:这个保存逻辑在接口开发设计文档中可能没有写或写的不详细,这时要与开发接口人员或产品人员多多沟通去熟悉接口逻辑
二、测试分析
&&&&1、逻辑分析
& & & & 1)、从保存逻辑上来看,这两个接口明显是有依赖关系的,所以我们先测试信用卡账户信息接口,再测试保存信用卡账单接口
&&&&&&&&2)、接口传入的数据,最终是保存到数据库中,所以当接口返回保存成功的时候,我们也要去对应的数据库表中核对相应的数据(这里可以用jmeter链接数据库进行操作代理手工)
& & & & 3)、当出现保存失败的情况时,我们需要查看系统的日志,所以我们也要准备好查看日志的权限和地址
&&&&2、测试工具的准备
& & & & 1)、单个接口测试,我们使用火狐的插件poster
& & & & 2)、多个接口测试,我们使用Jmeter进行测试
三、使用工具测试
&&&&1、Poster工具的使用方法见
& & & & & &&
&&&&2、使用Jmeter对接口测试
& & & & & & 首先我们说一下为什么用Poster测试后我们还要用Jmeter做接口测试,在用poster测试时候会发现的是一个接口一个接口的测试,我们每次测试成功后的数据,在工具中是无法保存的,再次测试的时候我们还要重新输入测试的数据,当我们测试一个接口的时候可能感觉不明显,但是当你测试几十个接口的时候,你就会发现使用Jmeter的好处,如果按测试阶段来说冒烟测试我们用poster,集成测试我们用Jmeter
四、使用Jmeter接口测试
&&&&&&&&1、首先邮件添加一个线程组,这里我们重命名InterfaceTest
&&&&&&&&2、在线程组上添加一个Http默认请求,并配置服务器的IP地址和传输编码
&&&&&&&&3、在线程组中添加一个HTTP请求,这里我们重命名“增加信用卡账户信息接口”
&&&&&&&&&&&&
&&&&&&&&4、配置接口请求信息,这配置示例如下:
&&&&&&&&5,在保存信用卡账单接口请求,示例如下:
&&&&&&&&& &&
&&&&&&&&注:由于Jmeter请求线程组内的请求时从第一个开始执行,所以我们将需要最先执行的请求放在前面
&&&&&&&&6、在线程组上添加监听器,察看结果树和聚合报告
&&&&&&&&7、点击启动,运行结束后查看,结果树和聚合报告
&&&&&&&&8、去数据库中核对数据
&&&&&&&&9、大批量数据制造
&&&&&&&&& & 思路:
&&&&&&&&1)、可参数化的参数,保存信用卡账户信息接口(clientNo,cardNo),保存信用卡账单接口(clientNo,cardNo,billMonth,paymentDate)
&&&&&&&&2)、两个接口的依赖关系,保存信用卡账单接口(clientNo,cardNo)要和信用卡账户信息接口(clientNo,cardNo)的两个相同,也就是说这两个要用一个参数,且还不能重复
&&&&&&&&根据上面两个特点,(clientNo,cardNo)我们选取使用计数器,每循环一次计数器加1,那么我们将线程组设置循环执行1万次;billMonth,paymentDate,这两个日期我们是使用随机函数${__Random(1,9,)},将月份参数化;
&&&&&&&&3)、在线程组上创建计数器,配置如下:
&&&&&&&&4)、引用计数器和随机函数
&&&&&&&&信用卡账户接口传入参数
&&&&&&&&& & & & args={
&&&&&&&&& & & & & & "clientNo":"${add}",
&&&&&&&&& & & & & & "alias": "**信用卡2",
&&&&&&&&& & & & & & "cardName": "长城*****卡2",
&&&&&&&&& & & & & & &"cardNo": "${add}51",
&&&&&&&&& & & & & & }
&&&&&&&&账单接口传入参数
&&&&&&&&args={
&&&&&&&&& & & & & & "clientNo":"${add}",
&&&&&&&&& & & & & & "accountName": "测试",
&&&&&&&&& & & & & & "billDate": "08",
&&&&&&&&& & & & & & "billMonth": "20150${__Random(1,9,)}",
&&&&&&&&& & & & & & &"cardNo": "${add}51",
&&&&&&&&& & & & & & "currentPayment": "欠款459.80",
&&&&&&&&& & & & & & "paymentDate": "2015-0${__Random(1,9,)}-25 09:00:00",&
&&&&&&&&& & & & & & }
&&&&&&&&5)、设置线程组循环测试,点击运行,查看运行结果,再去数据库看看,大批量数据就这样产生了
更多精彩分享欢迎大家关注小伙伴们的微信公众号
更多开发者职位上
1)">1)">1" ng-class="{current:{{currentPage==page}}}" ng-repeat="page in pages"><li class='page' ng-if="(endIndex<li class='page next' ng-if="(currentPage
相关文章阅读二次元同好交流新大陆
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
带着敬畏之心前行在未来的路上
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
缺点:持续集成时需要写脚本进行调用用例和数据准备不直观。1.安装jmeter:& &去官网下载吧,前提是安装了jdk2.创建线程组:建议把名称修改为本次测试项目的名称,方便后继管理。对常用的参数做过说明:线程数就是运行该case的时候启动几个线程;Ramp-Up Period:在n秒内启动${你所填写的}线程数&3.添加Sampler(样本)-HTTP请求&填写url+端口+请求参数,---------所有参数都可以通过添加用户变量来完成参数化。4.添加断言:正确的返回添加camparison assertion visualizer,错误可以添加xml或json断言&5.在linux下运行jmeter脚本,为了不反复修改样本中的服务器名称和端口号,可以在启动jmx时指定服务器名称和端口号,在jmeter安装目录下的bin文件夹下,运行方式:./jmeter {param},例如:./jmeter -n -t ../testJMX/test.jmx -l test.jtl -H qa11.server.163.org -P 8523参数说明:-n This specifies JMeter is to run in non-gui mode-t [name of JMX file that contains the Test Plan].-l [name of JTL file to log sample results to].-r Run all remote servers specified in JMeter.properties (or remote servers specified on command line by overriding properties)The script also lets you specify the optional firewall/proxy server information:-H [proxy server hostname or ip address]&-P [proxy server port]
阅读(688)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'利用Jmeter完成接口测试一http接口',
blogAbstract:'本篇简单介绍如何使用jmeter进行http接口测试,后继完成java接口测试分享,并进行持续集成。用Jmeter完成http接口测试的优点是省去写代码的工作,运行方便缺点:持续集成时需要写脚本进行调用用例和数据准备不直观。1.安装jmeter:
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}&#xe621; 上传我的文档
&#xe602; 下载
&#xe60c; 收藏
该文档贡献者很忙,什么也没留下。
&#xe602; 下载此文档
正在努力加载中...
利用JMeter进行Web测试(最好)
下载积分:2500
内容提示:利用JMeter进行Web测试(最好),jmeter接口测试,jmeter 测试数据库,jmeter分布式测试,jmeter测试登录,jmeter测试http,jmeter 压力测试,jmeter 测试,性能测试工具jmeter,jmeter,apache jmeter
文档格式:PPT|
浏览次数:241|
上传日期: 22:58:58|
文档星级:&#xe60b;&#xe60b;&#xe60b;&#xe612;&#xe612;
该用户还上传了这些文档
利用JMeter进行Web测试(最好)
官方公共微信当前访客身份:游客 [
当前位置:
我现在在使用JMeter做性能测试,基本的添加线程组这种已经了解了
我的问题是,我现在要测很多接口,每个接口是不同的get,post方式不同,一个个加线程组很麻烦,有什么方法可以方便地进行这种增加多个接口测试
P.S我用的是ubuntu系统,没法用badboy录制
共有0个答案
更多开发者职位上
有什么技术问题吗?
类似的话题使用jmeter进行APP接口测试经验总结
&使用工具:Fiddler、Jmeter测试步骤:1.&&& 确认接口从开发人员那里获取接口文档,接口文档应该包括完整的功能接口、接口请求方式、接口请求URL、接口请求参数、接口返回参数。如果当前项目没有接口文档,则可以使用fiddler对APP进行抓包确认。fiddler对手机进行抓包的方法可以参考:http://blog.csdn.net/whorus1/article/details/在手机上对APP进行操作,然后在Fiddler中可以抓取对应的网络交互信息(一个功能中可能设计多个接口的交互)。在抓取的信息中可以看到接口请求方式、接口请求URL、接口请求参数、接口返回参数。2.&&& 在Jmeter中编写测试脚本1.&&&&&&在测试计划中添加一个线程组(在测试计划上右击,添加-Threads-线程组)。可以将线程组的名称改成测试项目的名称。在性能测试时可以通过配置线程属性中的参数来控制并发用户数:线程数:虚拟用户数,即并发数,一个线程表示一个虚拟用户;Ramp-Up&Period:所有线程启动的时间,单位s。通过这个参数可以设置每个线程间的启动间隔,防止给电脑造成太大性能压力;循环次数:测试循环的次数,如果勾选了“永远”,那么所有线程会一直发送请求,直到手动停止运行脚本;2.&&&&&&在线程组中添加HTTP请求(在线程组上右击,添加-Sampler-HTTP请求)。可以将名称改为待测接口的名称;在Web服务器中填入请求服务器的地址和端口号;协议中填入HTTP请求的协议,可以是http或https,我们一般用的都是http;在方法中选择HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE;(我们项目中的接口方法使用的主要是GET和PUT,在目前易户网的项目中由于APP不直接和服务器交互,中间有一个统一接口平台,所以GET方法的接口请求也要使用POST进行交互。)在路径中填入接口请求的URL;请求参数:如果是GET方法的请求,请求参数直接写在URL后面即可;如果是POST的方法,则需要在Body Data中填入包含请求参数的数据(Body Data可以从Fiddler抓的包中获取,将Fiddler抓取的到数据包中Inspectors-TextView中的数据复制到Body data中即可);3.&&&&&&在线程组中添加HTTP信息头管理器(在线程组上右击,添加-配置元件-HTTP请求信息头管理器)。配置如下:4.&&&&&&添加监听器(在线程组上右击,添加-监听器-XXX)。主要配置完成了,需要添加监听器以查看测试结果。一般我们使用查看结果树和聚合报告查看。查看结果树:在结果树中会以树形结构展示每个接口请求的测试结果,包括取样器结果、请求、响应数据,在响应数据中可看到网络侧返回的数据,可以以接口文档中期望返回的参数做比较以判断返回是否正确。在结果树中通过颜色可以直观的看到接口测试的结果,绿色为通过,红色为失败。聚合报告:从聚合报告中我们可以获取到比较多的信息,包括接口的响应时间、吞吐量、通过率等,在接口的性能测试中很有用。表中参数的含义如下:5.&&&&&&添加响应断言(添加-断言-响应断言)。查看测试结果时我们会发现有时候网络侧返回数据不符合要求时Jmeter给出的结果仍是通过的。这时候我们需要通过断言来判断网络的返回数据是否符合要求。比如,我们可以添加一个断言来检查返回信息中是否包含关键字“errMsg”来判断错误信息:首先添加一个相应断言,在要测试的响应字段中选择响应文本,在模式匹配规则中选择包括,勾选否,在要测试的模式中添加提一条,输入关键字“errMsg”;意思是检查网络返回结果中不包含“errMsg”的才会判定为通过。另外我们还可以从监听器中添加一个断言结果,在断言结果中可以查看断言的详细返回信息。3.&&& 其他补充使用CSV Data Set Config定义变量。举个例子,我们想要测试多用户登陆时要怎么做?可以在线程属性中配置多个线程,但是这样只是同一个用户多次登录,多个不同的用户需要输入不同的用户名密码。当然我们可以写多个登录的HTTP请求,每个请求输入不同的参数,但是这样太傻了。这个时候我们可以通过CSV DataSet Config来定义两个变量代表用户名和密码,然后传入不同的&#20540;即可实现多用户的登录:1、我们在登录的case中添加一个CSV DataSet Config(添加-配置元件-CSV Data Set Config)。Filename:指定读取用户名和密码的文件,我们会将所有的用户名密码写到该文件中;FileEncoding::写入用户名密码的文件编码&#26684;式,不写的时候默认为ANSIVaribleNames:定义文本文件中的变量名用户名=user和密码=pwd,变量之间逗号分隔。&2、我们到上面Filename的路径下创建该文件并写入用户名密码,用户名和密码之间用逗号分开,不同用户名密码之间换行。3、到Jmeter的脚本中将原本的用户名密码改为变量名,由于我们使用的是Post方法,所以到Body Data中修改:
最新教程周点击榜
微信扫一扫

我要回帖

更多关于 jmeter接口性能测试 的文章

 

随机推荐