1:首先到apache-jmeter-3.0\lib\ext目录下引用以下两个jar包到Java工程里面

ApacheJMeter_core.jar

ApacheJMeter_java.jar

2:新建一个测试类继承AbstractJavaSamplerClient 并实现Serializable 接口,例如:

public class Ssfwpttest extends AbstractJavaSamplerClient implements Serializable {

    private static final long serialVersionUID = 1L;

    //设置GUI页面显示的变量名称
private static final String URL_NAME = "URL";
private static final String URLVALUE_DEFAULT = "https://xx";
//resultData变量用来存储响应的数据,目的是显示到查看结果树中。
private String resultData; private List<String> nsrsbhList = new ArrayList<String>(); @Override
public Arguments getDefaultParameters() {
Arguments arguments = new Arguments();
arguments.addArgument(URL_NAME, String.valueOf(URLVALUE_DEFAULT));
return arguments;
} @Override
public void setupTest(JavaSamplerContext context) {
nsrsbhList.clear(); try {
File file = new File("D:\\dj_nsrxx.xml");
SAXReader reader = new SAXReader(); Document doc = reader.read(file); Element rootElement = doc.getRootElement(); List<Element> nsrs = rootElement.elements(); Iterator<Element> iter = nsrs.iterator(); while (iter.hasNext()) {
Element row = iter.next(); Element nsrsbh = row.element("NSRSBH"); nsrsbhList.add(nsrsbh.getTextTrim());
} } catch (DocumentException ex) {
Logger.getLogger(Ssfwpttest.class.getName()).log(Level.SEVERE, null, ex);
}
} @Override
public SampleResult runTest(JavaSamplerContext jsc) {
int begin = 0;
int end = nsrsbhList.size()-1;
Random random = new Random();
int index = random.nextInt(end)%(end-begin+1) + begin;
String nsrsbh = nsrsbhList.get(index);
nsrsbhList.remove(nsrsbh);//使用过了就移除,避免出现重复 /*
* SampleResult这个类是用来将测试结果输出到查看结果树中的。
* 并且也是用来控制事务的开始和结束的。
*/
SampleResult results = new SampleResult();
results.setSampleLabel(nsrsbh+"=>"+URLVALUE_DEFAULT);
results.sampleStart(); //请求参数需要动态设置 try {
resultData = HttpsUtils.post(URLVALUE_DEFAULT, header, param, null); if (null != resultData) {
JsonObject obj = new JsonParser().parse(resultData).getAsJsonObject();
if (null != obj) {
String code = obj.get("code").getAsString();
if (code.equals("0")) {
results.setSuccessful(true);
}
}
}
} catch (Exception e) {
//如果发生异常,则捕捉,并且发送事务失败的消息。
results.setSuccessful(false);
//e.printStackTrace();
} finally {
//标记事务结束
results.sampleEnd();
} //将数据打印到查看结果树当中
results.setResponseData(resultData, null);
results.setDataType(SampleResult.TEXT); return results;
}
}

3:将项目打包复制到apache-jmeter-3.0\lib\ext目录

Jmeter AbstractJavaSamplerClient 案例的更多相关文章

  1. Jmeter接口测试案例实践(一)

    1.1. 接口介绍 本次测试的接口采用内网中的通讯录查询接口进行测试,接口参数如下: 1.2. 使用Jmeter进行接口测试 1.2.1. 打开Jmeter 下载好Jmeter后,双击bin目录下的j ...

  2. jmeter入门案例(二)

    jmeter入门简介(一)下载及元件介绍https://www.cnblogs.com/wish5714/p/9714930.html jmeter典型的http请求示例 业务场景 银行卡收单交易,模 ...

  3. JMeter 实战案例

    案例1:博客网站后端测试 案例2:JPetStore 应用 案例1:博客网站后端测试 测试目标 测试博客网站后端的常用 HTTP 接口的访问方法. 展示 HTTP 请求的各类使用方法. 展示提取 JS ...

  4. jMeter接口测试案例

  5. Jmeter压力测试工具安装及使用教程

    一.Jmeter下载 进入官网:http://jmeter.apache.org/ 1.第一步进入官网如下图 2.选择进行下载,下载下来为一个压缩包,解压即可. 3.我下载的是jmeter4.0版本, ...

  6. 【转】Jmeter安装成功后的目录介绍

    1.bin目录 Jmeter.bat  打开Jmeter主界面 Jmeter使用的日志文件名称被定义到Jmeter.properties中,默认在Jmeter.log可查看日志 2.dosc和prin ...

  7. 接口测试专题(Java & jmeter & Linux基础)

    以下是我和两个朋友原创文章合集,主题是接口测试,有Java接口测试案例和jmeter的案例,还有接口测试相关服务器操作基础.欢迎点赞.关注和转发. 接口测试 httpclient处理多用户同时在线 h ...

  8. [转]Jmeter压力测试工具安装及使用教程

    一.Jmeter下载 进入官网:http://jmeter.apache.org/ 1.第一步进入官网如下图 2.选择进行下载,下载下来为一个压缩包,解压即可. 3.我下载的是jmeter4.0版本, ...

  9. Jmeter(一) - 从入门到精通 - 环境搭建(详解教程)

    1.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件, ...

随机推荐

  1. Spring Boot开发之明月千城(一)

    原文地址:http://qindongliang.iteye.com/blog/2205633 最近数据分析的项目也即将告一段落了,中间也积累了很多知识,特此记录一下.其中用的最爽的Web组合开发就是 ...

  2. 【CentOS】centos如何修改你的主机名

    转载地址:https://www.linuxidc.com/Linux/2014-11/109238.htm ============================================= ...

  3. JMeter学习(二十三)关联

    话说LoadRunner有的一些功能,比如:参数化.检查点.集合点.关联,Jmeter也都有这些功能,只是功能可能稍弱一些,今天就关联来讲解一下. JMeter的关联方法有两种:后置处理器-正则表达式 ...

  4. itunes connect 沙盒帐号地区的问题导致无法进行充值

    项目代理给台湾发行,版本由项目提交appstore,台湾合作伙伴会进行测试.这里遇到一个问题,就是沙盒帐号测试的时候死活提示充值失败,不走正常的充值流程. 后来我分析了原因,主要是由于帐号的App S ...

  5. Android 常用的数据加密方式

    前言 Android 很多场合需要使用到数据加密,比如:本地登录密码加密,网络传输数据加密,等.在android 中一般的加密方式有如下: 亦或加密 AES加密 RSA非对称加密 当然还有其他的方式, ...

  6. 解读SSD中的Default box(Prior Box)

    1:SSD更具体的框架如下: 2: Prior Box 缩进在SSD中引入了Prior Box,实际上与anchor非常类似,就是一些目标的预选框,后续通过softmax分类+bounding box ...

  7. Emscripten教程之连接C++和JavaScript(三)

    本文是Emscripten-WebAssembly专栏系列文章之一,更多文章请查看专栏.也可以去作者的博客阅读文章.欢迎加入Wasm和emscripten技术交流群,群聊号码:939206522. E ...

  8. vNetwork Standard Switch(vSS)和vNetwork Distributed Switch(vDS)的区别

    vSS: vSwitches are configured on each ESXi/ESX host. vDS: The configuration of vDS is centralized to ...

  9. SQL SERVER CXPACKET-Parallelism Wait Type 的惯用解决方案

    最近我的两个库出现,出现较多的CXPACKET等待,在网上找了一下资料.其中有篇一个SQL Server专栏作家的文章不错,也解决了我的一些疑问,就翻译在这里. 翻译整理仅用于传播资讯之目的. 原文出 ...

  10. 微信小程序--后台交互/wx.request({})方法/渲染页面方法 解析

    小程序的后台获取数据方式get/post具体函数格式如下:wx.request({}) data: { logs:[] }, onLoad:function(){ this.getdata(); } ...