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. WordPress基础:设置后台语言

    菜单-设置-站点语言

  2. CentOS 7 修改时区

    转自:http://blog.csdn.net/robertsong2004/article/details/42268701 本文转载至:http://mathslinux.org/?p=637 L ...

  3. Unity Shader-渲染队列,ZTest,ZWrite,Early-Z

    在渲染阶段,引擎所做的工作是把所有场景中的对象按照一定的策略(顺序)进行渲染.最早的是画家算法,顾名思义,就是像画家画画一样,先画后面的物体,如果前面还有物体,那么就用前面的物体把物体覆盖掉,不过这种 ...

  4. 实用ExtJS教程100例-008:使用iframe填充ExtJS Window组件

    上面两节中我们分别演示了ExtJS Window的常用功能 和 如何最小化ExtJS Window组件,在这篇内容中我们来演示一下如何使用iframe填充window组件. 思路很简单,首先创建一个w ...

  5. Universal-Image-Loader解析(二)——DisplayImageOptions的详细配置与简单的图片加载

    在使用这个框架的时候,我们必须要配置一个DisplayImageOptions对象来作为ImageLoader.getInstance().displayImage()中的参数,所以很有必要讲解这个对 ...

  6. 关于 as 播放器的记录

    一:文件结构 1:代码 2:编译后   二:IDE展示区 1处还有6个层,2处为代码和设计文件,3处是主类. 资源文件的位置如下:   三:数据交互 AS中代码: JS中代码: 更多需要注意的地方在这 ...

  7. RV32FD指令集

    Risc-V架构定义了可选的单精度浮点指令(F扩展指令集)和双精度浮点指令(D扩展指令集). Risc-V架构规定:处理器可以选择只实现F扩展指令子集而不支持D扩展指令子集:但是如果支持了D扩展指令子 ...

  8. [leetcode]Pascal's Triangle @ Python

    原题地址:https://oj.leetcode.com/problems/pascals-triangle/ 题意: Given numRows, generate the first numRow ...

  9. 用网站(WebSite而不是WebProject)项目构建ASP.NET MVC网站

    从ASP.NET MVC第一个版本开始到现在,创建ASP.NET MVC项目的官方方法只有一个,“文件”->“新建”->“项目”,然后选择ASP.NET MVC X Web应用程序. 这种 ...

  10. Restore IP Addresses leetcode java

    题目: Given a string containing only digits, restore it by returning all possible valid IP address com ...