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. 架构:The Onion Architecture : part 1(洋葱架构:第一篇)(转载)

    原文地址:http://jeffreypalermo.com/blog/the-onion-architecture-part-1/. I've spoken several times about ...

  2. Android手机提示“未安装应用程序”

    用eclipse调试应用时,遇到了这个问题,网上给出的解决方案倒是挺多,但似乎一个都没奏效,而且我手机也重启了,还是有问题,郁闷ing-   然后看到一篇文章指出,可能不是签名和SD的卡问题,而是我们 ...

  3. bat调用TexturePacker更新SpriteSheet

    一款游戏会用到很多图片资源,通常我们会使用TexturePacker工具进行图片的拼接.压缩,为了考虑性能问题,单个SpriteSheet的尺寸不会设置的太大(最大1024 * 1024),这样就可能 ...

  4. [Web 前端 ] ES6 == ES 2015

    cp from : https://www.cnblogs.com/ricoliu/p/5996149.html 遇到了一个困惑   原来称作es6的现在突然变成es2015 了 原因是这个事ecma ...

  5. textrank的方法,大概懂了

    https://www.cnblogs.com/clover-siyecao/p/5726480.html 介绍了textrank. 不过我觉得对于长文本,textrank才有用些.短文本的话,估计没 ...

  6. LeetCode题解:Rotate List

    Rotate List Given a list, rotate the list to the right by k places, where k is non-negative. For exa ...

  7. go语言之进阶篇WriteString的使用

    1.WriteString的使用 示例: package main import ( "fmt" "os" ) func WriteFile(path stri ...

  8. PyTorch保存模型与加载模型+Finetune预训练模型使用

    Pytorch 保存模型与加载模型 PyTorch之保存加载模型 参数初始化参 数的初始化其实就是对参数赋值.而我们需要学习的参数其实都是Variable,它其实是对Tensor的封装,同时提供了da ...

  9. CSS-图片不变形设置

    不管网页做的美还是丑,有一个问题始终是无法躲避的,就是有的时候会遇到图片变形的问题,之前遇到过这种问题解决过,不过还是整体的重新研究了一下图片,其中主要涉及到的知识点就是max-width和max-h ...

  10. C# Win32控制台应用程序忽略 Ctrl + C,阻止程序退出

    C# Win32控制台应用程序忽略 Ctrl + C,阻止程序退出,这里使用到了Windows API SetConsoleCtrlHandler函数 注意:在VS中调试执行时,在处理程序例程中设置断 ...