jmeter性能测试脚本的编写 您所在的位置:网站首页 脚本接口是什么样的 jmeter性能测试脚本的编写

jmeter性能测试脚本的编写

2024-07-02 15:57| 来源: 网络整理| 查看: 265

 

一、http请求的脚本编写 以线上打款接口为例:

1、启动jmeter,建立一个测试计划。

启动:打开jmeter文件夹,bin文件→jmeter.bat(Windows执行文件)文件,就可以启动jmeter了

2、添加用户定义参数,定义IP和端口号

3、添加Http信息头管理器

4、添加Http Cookie管理器

5、添加逻辑控制器及登录http接口的请求

6、添加线上打款Http接口的请求

7、添加聚合报告查看结果

 

二、Java请求的脚本编写

?perfOpenApiTest.rar

以扫码支付接口为例:

目的:对开放平台的加密接口进行测试

(1)、核心步骤

1.创建一个Java maven工程;

 

2.将JMeter的lib目录下的jar文件添加进此工程的POM.xml中

cn.hutool hutool-all 4.1.8 com.google.guava guava 21.0-rc1 org.apache.jmeter ApacheJMeter_java 5.0

 

3.创建一个类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写;

public Arguments getDefaultParameters();设置可用参数及的默认值;

public void setupTest(JavaSamplerContext arg0):每个线程测试前执行一次,做一些初始化工作;

public SampleResult runTest(JavaSamplerContext arg0):开始测试,从arg0参数可以获得参数值;

public void teardownTest(JavaSamplerContext arg0):测试结束时调用;

4.打包成Runnable Jar File;

mvn install

5.将此jar包放入JMETER_HOME\lib\ext目录;

6.以管理员身份打开JMeter;

7.创建线程组、Java Request、查看结果树,进行测试;

(2)、实例

public class perfOrderScan implements JavaSamplerClient { private SampleResult results; private String type; private String total_fee; private String store_id; private String cashier_id; // 设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中 public Arguments getDefaultParameters() { Arguments params = new Arguments(); params.addArgument("type", "0");// 设置参数,并赋予默认值0 params.addArgument("total_fee", "0");// 设置参数,并赋予默认值0 params.addArgument("store_id", "0");// 设置参数,并赋予默认值0 params.addArgument("cashier_id", "0");// 设置参数,并赋予默认值0 return params; } // 初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行 public void setupTest(JavaSamplerContext arg0) { results = new SampleResult(); } // 测试执行的循环体,根据线程数和循环次数的不同可执行多次 public SampleResult runTest(JavaSamplerContext arg0) { type = arg0.getParameter("type"); // 获取在Jmeter中设置的参数值 total_fee = arg0.getParameter("total_fee"); // 获取在Jmeter中设置的参数值 store_id = arg0.getParameter("store_id"); // 获取在Jmeter中设置的参数值 cashier_id = arg0.getParameter("cashier_id"); // 获取在Jmeter中设置的参数值 results.sampleStart();// jmeter 开始统计响应时间标记 try { String method = "openapi.payment.order.scan"; String merchant_order_sn = RandomUtil.simpleUUID(); Map content = Maps.newHashMap(); content.put("merchant_order_sn", merchant_order_sn); content.put("type",type); content.put("total_fee",total_fee); content.put("store_id",store_id); content.put("cashier_id",cashier_id); String biz_content = JSONUtil.toJsonStr(content); JSONObject response = ATSBaseTest.postOpenapiRequest(method,biz_content,null,null); // 通过下面的操作就可以将被测方法的响应输出到Jmeter的察看结果树中的响应数据里面了。 if (response != null && response.size() > 0) { results.setResponseData("结果是:"+response, null); results.setDataType(SampleResult.TEXT); } results.setSuccessful(true); // System.out.println(response); // 被测对象调用 } catch (Throwable e) { results.setSuccessful(false); e.printStackTrace(); } finally { results.sampleEnd();// jmeter 结束统计响应时间标记 } return results; } // 结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行 public void teardownTest(JavaSamplerContext arg0) { } //调试代码 // public static void main(String[] args) { // // TODO Auto-generated method stub // Arguments params = new Arguments(); // params.addArgument("type", "1");// 设置参数,并赋予默认值0 // params.addArgument("total_fee", "0.01");// 设置参数,并赋予默认值0 // params.addArgument("store_id","7771"); // params.addArgument("store_id","1512948"); // JavaSamplerContext arg0 = new JavaSamplerContext(params); // perfOrderScan test = new perfOrderScan(); // test.setupTest(arg0); // test.runTest(arg0); // test.teardownTest(arg0); // } }

(3)、JMeter Java Sampler介绍

Arguments

getDefaultParameters() 用于获取界面的参数

SampleResult

runTest(JavaSamplerContext context) 类似于LR的Action,result.sampleStart()一个事务开始,result.sampleEnd()一个事务 结束

void

setupTest(JavaSamplerContext context) 初始化方法,类似于LR的init和Junit中的setUp()

void

teardownTest(JavaSamplerContext context) 类似于LR的end和Junit中的tearDown()

执行的先后顺序为:

getDefaultParameters() --> setupTest(JavaSamplerContext context)

--> runTest(JavaSamplerContext context)

--> teardownTest(JavaSamplerContext context)

 

常用的方法:

①、addArgument("name", "value")    定义参数

②、sampleStart()    定义事务的开始,类似于LR的lr_start_transaction,和LR一样事务间不要放无关代码

③、sampleEnd()    定义事务的结束,类似于LR的lr_end_transaction

④、setSuccessful(true、false)    设置运行结果的成功或失败,Jmeter统计成功失败的次数,在聚合报告中能够体现。

(4)、添加线程组和Java Request

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有