Jmeter AbstractJavaSamplerClient 案例
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 案例的更多相关文章
- Jmeter接口测试案例实践(一)
1.1. 接口介绍 本次测试的接口采用内网中的通讯录查询接口进行测试,接口参数如下: 1.2. 使用Jmeter进行接口测试 1.2.1. 打开Jmeter 下载好Jmeter后,双击bin目录下的j ...
- jmeter入门案例(二)
jmeter入门简介(一)下载及元件介绍https://www.cnblogs.com/wish5714/p/9714930.html jmeter典型的http请求示例 业务场景 银行卡收单交易,模 ...
- JMeter 实战案例
案例1:博客网站后端测试 案例2:JPetStore 应用 案例1:博客网站后端测试 测试目标 测试博客网站后端的常用 HTTP 接口的访问方法. 展示 HTTP 请求的各类使用方法. 展示提取 JS ...
- jMeter接口测试案例
- Jmeter压力测试工具安装及使用教程
一.Jmeter下载 进入官网:http://jmeter.apache.org/ 1.第一步进入官网如下图 2.选择进行下载,下载下来为一个压缩包,解压即可. 3.我下载的是jmeter4.0版本, ...
- 【转】Jmeter安装成功后的目录介绍
1.bin目录 Jmeter.bat 打开Jmeter主界面 Jmeter使用的日志文件名称被定义到Jmeter.properties中,默认在Jmeter.log可查看日志 2.dosc和prin ...
- 接口测试专题(Java & jmeter & Linux基础)
以下是我和两个朋友原创文章合集,主题是接口测试,有Java接口测试案例和jmeter的案例,还有接口测试相关服务器操作基础.欢迎点赞.关注和转发. 接口测试 httpclient处理多用户同时在线 h ...
- [转]Jmeter压力测试工具安装及使用教程
一.Jmeter下载 进入官网:http://jmeter.apache.org/ 1.第一步进入官网如下图 2.选择进行下载,下载下来为一个压缩包,解压即可. 3.我下载的是jmeter4.0版本, ...
- Jmeter(一) - 从入门到精通 - 环境搭建(详解教程)
1.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件, ...
随机推荐
- IntentService 与ResultReceiver
from://http://lyzhanghai.iteye.com/blog/947504 在google的I/O大会中关于“Writing zippy Android apps”,有讲过用Inte ...
- Netty 包头
LengthFieldBasedFrameDecoder 常用的处理大数据分包传输问题的解决类,先对构造方法LengthFieldBasedFrameDecoder中的参数做以下解释说明 maxFra ...
- cocos2d-x 3.0 正式版 项目创建
官方示比例如以下: Example: $ cd cocos2d-x $ ./setup.py $ source FILE_TO_SAVE_SYSTEM_VARIABLE $ cocos new Eng ...
- JS --- reduce()函数
定义: reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值.对空数组是不会执行回调函数的. 案例 计算数组总和 var num = [1,2,3,4,5 ...
- Android之用自定义的shape去实现shadow效果
直接上xml文件, 并且附上相应的解析: <?xml version="1.0" encoding="utf-8"?> <selector x ...
- EF6源码学习-准备篇
现在对于.net开发人员来说EF已经很流行了,虽然我在2010年的时候就用过EF,也看过几本书,但是还没有仔细研究EF的code, 曾经也尝试阅读EF5的源代码,后来由于时间关系也没有坚持住.现在计划 ...
- 搭建MySQL高可用负载均衡集群(转)
阅读目录 1.简介 2.基本环境 3.配置MySQL主主复制 4.中间件简述 4.1.Haproxy介绍 4.2.keepalived介绍 5.中间件的安装与配置(haproxy.keepalived ...
- javascript定义对象写法
javascript定义对象的几种简单方法 1.构造函数方式,全部属性及对象的方法都放在构造方法里面定义 优点:动态的传递参数 缺点:每创建一个对象就会创建相同的方法函数对象,占用大量内存 funct ...
- 一文读懂「Attention is All You Need」| 附代码实现
https://mp.weixin.qq.com/s?__biz=MzIwMTc4ODE0Mw==&mid=2247486960&idx=1&sn=1b4b9d7ec7a9f4 ...
- RNN(Recurrent Neural Networks)公式推导和实现
RNN(Recurrent Neural Networks)公式推导和实现 http://x-algo.cn/index.php/2016/04/25/rnn-recurrent-neural-net ...