jmeter定时请求接口 接口测试header请求参数怎么写

接口测试Jmeter高阶玩法接口测试Jmeter高阶玩法发勾百家号随着接口测试越来越被业界人士重视,那么如何进行接口测试就是我们必须面对的一个问题。对于不懂代码,但又想提高测试效率的小编。只有借助工具快速实现测试需求,今天小编就与大家一起分享jmeter中的那些高阶用法,帮助正在寻找帮助的你。1.如何变量参数化在测试中,我们会涉及到很多接口请求,那么如何让这些请求参数化就迫在眉睫。解决方案:1)新建http请求2)添加config元件(右键http请求---添加--配置元件--CSV data set config)3)配置configfilename:变量文件路径(可以是绝对路径或者相对路径)File encoding:支持的编码格式Variable names:变量名,用逗号分隔4)在步骤1中新建的http请求中填写变量5)变量文件,一条case写一行,变量之间用半角逗号分隔6)执行注:请求中的参数参数化方式相同2.如何获取header中的下载链接1)在需要获取下载链接的请求下方添加两个正则表达式提取器2)添加参数模板:添加内容为固定的:$1$匹配数字:也是固定添加12)在服务器名称和路径中添加刚才取出的数据(引用名称)语法:${引用名称}4.曾经遇到的那些坑1)添加了HTTP请求默认值,添加HTTP请求时为什么没有显示默认值添加http请求默认值:右键http请求---添加--配置元件--http请求默认值添加请求时不会自动添加变量,如果已设置默认值,对应的位置可以不用填写数值。2)请求返回状态码为500A. Get请求处理方式解决方案:a.header中添加cookies信息b.header中添加其他校验信息(可以询问开发),如版本号。添加方式如下:步骤1:右键请求--添加--配置元件--HTTP信息头管理器骤2:点击添加--填写名称和值B. Post请求处理方式解决方案:添加body数据,如果还是返回状态码500,则get方式状态返回500方法添加相关参数。添加body数据步骤如下:步骤1:fiddler中查看请求中的textview中是否有数据或者在raw中看是否有其他信息步骤2:body data数据中添加上述TextView中的数据,如果parameters中添加了参数无法添加body data3)请求参数化,为什么只读取了参数化文件中的一个数据将线程组中的循环次数等于或大于变量的个数,循环次数如果是1只会发一个请求。或者设置线程数,线程数是我们需要模拟的用户数。4)如何验证返回结果中header中的信息响应断言中添加response header中信息想学习软件测试这一门技术, 对软件测试感兴趣,想从事软件测试工作的。工作0-2年,感觉自己技术不行,想提升的没有工作经验,但基础非常扎实,想提升自己技术的。还有就是想一起交流学习的。工作遇到瓶颈了,想进阶突破自己的。小号一律不给过,谢谢。学习交流群: 备注好信息本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。发勾百家号最近更新:简介:走过拼过努力过,为了美好生活作者最新文章相关文章Web Jmeter–接口测试工具详解_其它综合
关于Jmeter工具不再过多介绍。如果你要学习软件性能测试,那么多少应该会对它有所耳闻。
强烈建议阅读官方学习:http://jmeter.apache.org/index.html
还有比这个更权威更全面的介绍Jmeter工具使用的么?
不过,此处要介绍是用它来做接口测试。
一、安装Jmeter
Jmeter官方首页:http://jmeter.apache.org/
  关于Jmeter可以做什么,官方上也有非常详细的介绍。另外它的文档也写很详细。如果想学习Jmeter,那么它的文档将会是最好的教材。
  我相信你可以在官网上找到下载地址并把它下载下来。
  Jmeter由Java语言,最新的Jmeter3.0版本的运行需要有Java 7 或之后版本的环境。我同样相信你能搞定Java环境。
  接下来,将下载的apache-jmeter-3.0.zip解压,进入解压目录…/apache-jmeter-3.0/bin 。双击ApacheJMeter.jar启动:
二、添加HTTP接口测试
  我们的所以工具都会在Jmeter工具中完成,接来就按照一般步骤来创建一个HTTP接口测试。
  如上图,右键点击“测试计划”–&“添加”–&“Threads(Users)”–&“线程组”。
  如上图,设置线程组,线程组主要包含三个参数:线程数、准备时长(Ramp-Up Period(in seconds))、循环次数。
  线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
  准备时长: 设置的虚拟用户数全部启动的时长。如果线程数为20 ,准备时长为10(秒) ,那么需要10秒钟启动20个线程。也就是平均每秒启动2个线程。
  循环次数:每个线程发送请求的个数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到手动点击工具栏上的停止按钮,或者设置的线程时间结束。
  因为这里要做接口测试,所以各个参数为均1。
  如上图,右键点击“线程组”–&“添加”–&“Sampler”–&“HTTP请求”。
  名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
  注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。
  服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。
  端口号:目标服务器的端口号,默认值为80 。
  协议:向目标服务器发送HTTP请求时的协议,可以是HTTP或者是HTTPS ,默认值为http 。
  方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
  Content encoding :内容的编码方式,默认值为iso8859
  路径:目标URL路径(不包括服务器地址和端口)
  自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 自动重定向到新的页面。
  Use keep Alive : 当该选项被选中时,jmeter 和目标服务器之间使用 Keep-Alive方式进行HTTP通信,默认选中。
  Use multipart/from-data for HTTP POST :当发送HTTP POST 请求时,使用Use multipart/from-data方法发送,默认不选中。
  同请求一起发送参数 : 在请求中发送URL参数,对于带参数的URL ,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的 名称1=值1)。
  如上图,右键点击“线程组”–&“添加”–&“监听器”–&“察看结果树”。
三、添加新的POST请求
POST请求的添加方式与前面GET请求一样。不过POST请求需要设置参数。
  服务器名称或IP: 127.0.0.1
  端口号:8000
  方法:POST
  路径:/polls/question_vote/
  同请求一起发送参数:
  点击“添加”按钮,添加POST请求的参数。
  执行测试:
  选择菜单栏“运行”–&“清除”,或者点击工具栏清除按钮。然后重新执行启动测试。并查看结果树。
四、添加断言
  对于自动化测试来说,断言必须要有的,如果没有断言我们只能人眼对比对接口返回的数据,有了断言功能,就会简化这个过程。Jmeter提供了丰富的断言方法来帮助我们完成这个工作。
  如上图,右键点击HTTP请求“添加”–&“断言”–&“响应断言”。
  要测试的响应字段:响应文本、Document(text)、URL样本、响应信息、Response Headers、Lgnore Staus等选项。虽然接口返回的是Json格式的数据,但对于Jmeter来说返回数据为文本,所以,这里可以勾选“响应文本”
  模式匹配规则:包括、匹配、Equals、Substring。这里只需要验证返回数据中是否包含主要的关键字,所以,这里勾选“包括”。
  要测试的模式:其实就是断言的数据。点击“添加”按钮,输入要断言的数据。
  运行测试:
  再次清除测试数据,点击启动测试,查看结果树,如下图。
=====================
接口测试就是这么简单!
以上就是对Web Jmeter 的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!拒绝访问 |
| 百度云加速
请打开cookies.
此网站 () 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3d3a95f38b1c43a7-ua98).
重新安装浏览器,或使用别的浏览器jmeter用java代码怎样编写接口测试源码_百度知道
该问题可能描述不清,建议你
jmeter用java代码怎样编写接口测试源码
我有更好的答案
jar&和&TestLength&初始化方法.java.sampler.AbstractJavaSamplerC的项目中,然后引入这两个JAR文件:
1.length() & 0) {
results.setSamplerData(testStr);
} } &#47.length();
results.sampleEnd();
/&#47.&quot.ArunTest&方法为性能测试时的线程运行体,实际运行时每个线程仅执行一次,在测试方法运行前执行.println(testStr);
results.setSuccessful(false);
//用于设置运行结果的成功或失败,如果是&false&则表示结果失败,否则则表示成功
results.setSuccessful(true);
} //结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行,类似于LoadRunner中的end方法
public void teardownTest(JavaSamplerContext arg0) {
6.把上面的例子打包,然后把生成的&TestLength.jar&文件拷贝到Jmeter的安装目录lib/ext下.
7.运行Jmeter,添加一个线程组,然后在该线程组下面添加一个Java请求(在Sampler中),在Java请求的类名称中选择咱们刚创建的类&app.TestLength&,在下面参数列表的&testStr&后面输入要测试的字符串,然后添加一个监听器(聚合报告),设置一下模拟的用户数就可以测试了.如果测试不成功,Jmeter会在它自己个输出框中抛出这个字符串.
通过上面的例子我们可以发现,使用Jmeter自定义Java测试代码,配合Jmeter自带的函数,就可以实现出LoadRunner中&Java Vuser&协议的绝大多数功能,而且是没有用户数限制和完全免费的(嘿嘿).上面的例子非常简单,而且没有任何实际意义,只是一个简单的Jmeter测试代码示例,用于抛砖引玉,希望大家一起交流,共同 进步..打开Java编译器;setupTest&方法为初始化方法;,&setupTest&quot.protocol.java,新建一个项目&类;import org.Java Vuser&quot,比如&import com.passpod./设置传入的参数,可以设置多个;方法主要用于设置传入的参数,用于初始化性能测试时的每个线程,然后在放到Jmeter中模拟10个用户测试.(具体的引入方法参考各个Java编译器的使用方法)
3.在&quot.jmeter.config.
2.jar&到&quot.apache.jmeter,使用Java编译器编写测试代码(Java编译器可以用E类了.
4.&TestLength&类在继承&AbstractJavaSamplerClient&ext中拷贝两个文件&quot.samplers.SampleResult,已设置的参数会显示到Jmeter的参数列表中
public Arguments getDefaultParameters() {
Arguments params = new Arguments().下面举一个简单的Java自定义测试代码例子.apache.定义一个事务,表示这是事务的起始点;ApacheJMeter_java,类似于LoadRunner的lr.end_transaction
if(len & 5){
STester& } //测试执行的循环体;ApacheJMeter_core,&quot.app&包中新建一个类,名字叫&quot,就可以找到&AbstractJavaSamplerClient&定义一个参数,显示到Jmeter的参数列表中,第一个参数为参数默认的显示名称,第二个参数为默认值
,然后新建一个包&&getDefaultParameters&quot, &&);
//,&runTest&quot.JavaSamplerCimport org,JBulider等),实现功能为:在测试前输入任意一个字符串,然后判断该字符串的长度是否大于5.&quot我们在做性能测试时,有时需要自己编写测试脚本,否则测试结果位失败;import org.,不过这个类要继承&AbstractJavaSamplerClient&quot.同样,Jmeter也支持自定义编写的测试代码,不过与LoadRunner不同的是,Jmeter没有自带编译器,需要借助第三方编译器才能实现.从Jmeter的安装目录lib&#47!= null && testStr.t8.*;&#47,如果项目引入步骤二中的两个文件;类的同时也会继承四个方法,分别是&quot,类似于LoadRunner的lr.start_transaction
len = testSC Vuser&;和&teardownTest&方法,根据线程数和循环次数的不同可执行多次,类似于LoadRunner中的Action方法
public SampleResult runTest(JavaSamplerContext arg0) {
int len = 0;
results.sampleStart();
/&#47,用于结束性能测试中的每个线程.
5.具体实现代码如下;testStr&;** * @author乐以忘忧 * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */public class TestLength extends AbstractJavaSamplerClient{
private SampleR
private String testS //&app&.jmeter.方法为测试结束方法,同时运行这段代码,具体实现如下,类似于LoadRunner中的init方法
public void setupTest(JavaSamplerContext arg0) {
results = new SampleResult();
testStr = arg0;等协议.addArgument(&quot, &&);
if (testS定义一个事务,表示这是事务的结束点,如果大于则测试结果成功;teardownTest&TestLength&quot:getDefaultParameters&quot.getParameter(&testString&.out,很多测试工具都支持自定义编写测试脚本,比如LoadRunner就有很多自定义脚本的协议
采纳率:95%
x[i] = (int)(Math.random()*280) ;
z[i] = new String(&&+(char)(M
} public void keyReleased(KeyEvent e) {
this.add(mp) ;+(char)(Math.random()*25+65)) ;
y[j] = 0 ;i++){
y[i] ++ ; TODO;+(char)(Math.random()*25+65)) ;
} } public void paint(Graphics g) {
super.setBackground(C
Thread.sleep(20) .
sum -= 1 ;) ; String z[] = new String[10] ;
sum += 1 .WHITE) .currentTimeMillis()-g&=60000) {for(int i=0, 560) ;
for(int i=0;i&
this.setTitle(&quot: &+sum , 10 .setSize(300 , 600) ;i&10;&
if(y[i]&= 600){
sum -= 1 ;
y[i] = (int)(Math.
this.setBackground(Color.black) ;
g.setColor(Color.setVisible(true) .random()*300) ;
z[i] = new String(&quot!=-1){
z[j] = new String(&quot: Add your code here }public void keyPressed(KeyEvent e) {
String keychar = new String(&&+e;
MyPanel(){
for(int i=0;
this.setResizable(false) .equals(z[i])){
if(yy&y[i]){
yy = y[i] ;
if(j.repaint() ;
} public void keyTyped(KeyEvent e) {
/&#47.drawString(&一分钟正确打对的字母, KeyListener { int x[] = new int[10] .* ;public class ZiMu extends JFrame { ZiMu(){
}}class MyPanel extends JPanel implements R10;i++){
if( int sum = 0 ; } public static void main(String args[]){
ZiMu w = new ZiMu () ;
MyPanel mp = new MyPanel() .getKeyChar()) ;
int yy = 0 ;
int j = -1 ;
for(int i=0;i&打字游戏&quot.paint(g) ;
catch(Exception e){
this.random()*25+65)) .random()*50) ;
w.BLACK) .currentTimeMillis() ;
while(System.random()*300) ;
y[i] = (int)(Math, x[i] , y[i]) ;
} public void run(){
long g = System.* ;import java.awt.* ;10;i++){
g.drawString(z[i] ;i++){
x[i] = (int)(M&i&10; int y[] = new int[10] ;
this.addKeyListener(mp) ;
Thread t = new Thread (mp) ;
t.start() .swingimport javax
为您推荐:
其他类似问题
您可能关注的内容
jmeter的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
jmeter使用文档-接口测试精要.pptx 21页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:350 &&
你可能关注的文档:
··········
··········
Jmeter使用简明文档
王东辉 2015.6
Thread Group
Sampler-HTTP Request
Assertions
Config Element
Pre Processor
Post Processor
是一款使用Java开发的,开源免费的测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试),而且用Jmeter 来测试 Restful API, 非常好用。
下载jmeter
官网地址:/download_jmeter.cgi
Jmeter 启动
下载jmeter 后解压,运行bin目录下的jmeter.bat 即可启动jmeter
非GUI 模式启动: jmeter -n -t test.jmx -l logfile1.jtl
ant 执行测试,extras 目录下有build.xml (先配置好ant 环境)
图形界面启动Jmeter 后, 点击 Options -& Choose Language ?来选择语言,支持中文
需要jdk1.6 以上
An Example
此处需要演示Example.jmx
一个简单测试包含的基本元件:Test plan(测试计划)-&Thread Group(线程组)-&Sampler(取样器)-& Assertions (断言)和Listener(监听器)
初步印象:一个测试计划下,可以创建多个线程组(分组配置测试执行规则);线程组下的每个sampler+断言组成用例,测试时监听器统计输出测试结果。
Name:测试计划名字
Comments:关于该测试计划的注释
User Defined Variables:可以定义整个测试中使用的重复值,如服务器名称。如果相同的变量名重复赋值,该值被设置为在测试计划(读从上到下)的最后一个定义。需要注意的是测试计划不能引用它定义的变量。如果需要从测试计划变量构建其他变量,使用配置元件。其他地方引用变量用${var_name}
Run Thread Groups consecutively:勾选后,普通线程组之间按上下排列顺序执行,而非默认的并行。
Run tearDown Thread Groups after shutdown of main threads:如果选中,tearDown线程组将在主线程正常关闭后(Stop Test)运行。如果测试被强制停止(Stop Test Now)tearDown线程将不会被运行。
函数测试模式:在非GUI模式下运行时,-l标志创建的日志文件。此选项勾选后,日志文件默认写入更多的数据字段如完整响应数据,影响性能。
添加classpath:类路径设置,可以添加jar文件或目录到特定的测试计划。【须重新启动JMeter】
可以直接把jar包放到jmeter的lib目录(默认的classpath )
Thread Group
Name:线程组名字
Comments:关于该线程组的注释
Action to be taken after a Sampler error: 遇到sampler出现error
Continue:忽略,继续运行测试
Start Next Thread Loop:忽略错误,开始下一个循环(Loop count),并继续进行测试
Stop Thread:退出当前线程组,继续其他测试
Stop Test:整个测试在当前所有运行sampler结束后停止
Stop test Now:立即停止测试,正在运行的sampler也中断
Number of threads:线程数
Ramp-Up Period:多久后需启动所有线程(如100s,共10个线程,则每个线程在前一个线程开始后10s开始)
Loop count: 重复执行次数,forever(调度器停止或error终止测试)
Delay Thread creation until needed: 延迟线程创建,直到需要(如10s启动共10个线程,则确保每隔1s时创建一个,如果不选择该项,测试开始时默认创建所有线程,只是未到开始时间的线程会暂停)。
Scheduler:调度器
测试开始时间(启动测试时检查是否到达开始时间)
结束时间(如果到达结束时间,测试终止)
测试持续时间(设置后,忽略结束时间,次序X秒后停止测试)
延迟开始(设置后,忽略开始时间,X秒后开始测试)
Stop Test和Stop Test Now对teardown线程组影响
情况1: Test 在准备阶段就出错了,即Setup Thread Group运行时出错。这时如果发生&Stop Test&quot
正在加载中,请稍后...

我要回帖

更多关于 jmeter 添加header 的文章

 

随机推荐