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. spring4 quartz2 集群动态任务

    实现定时任务的执行,而且要求定时周期是不固定的.测试地址:http://sms.reyo.cn 生产环境:nginx+tomcat+quartz2.2.1+spring4.2.1 集群. 实现功能:可 ...

  2. 用drawRect以及CAReplicatorLayer绘制动态水波纹

    用drawRect以及CAReplicatorLayer绘制动态水波纹 大大简化了写水波纹效果的难度,你可以根据示例自己组装水波纹效果,本设计是几个工具组合在一起完成的效果, DrawRectObje ...

  3. 波士顿法律第一至五季/全集Boston Legal迅雷下载

    本季第一至五季Boston Legal(2004-2008)看点:<波士顿法律>(Boston Legal)是讲述的是美国波士顿市一家律师事务所的故事,主要是两位活宝Alan(James ...

  4. 迷失第一季/全集Lost 1迅雷下载

    迷失 第一季 Lost Season 1 (2004)本季看点:影片主要讲述一架客机坠落在太平洋的孤岛上,48名乘客侥幸生还.面对这种荒芜人烟的小岛,他们如何才能生存下去呢?生还者形形色色,国籍.人种 ...

  5. 低版本系统兼容的ActionBar(三)自定义Item视图+进度条的实现+下拉导航+透明ActionBar

           一.自定义MenuItem的视图 custom_view.xml (就是一个单选按钮) <?xml version="1.0" encoding="u ...

  6. SVG 相关整理

    1. 中文参考手册: http://www.runoob.com/svg/svg-reference.html SVG HTML5 资源教程 http://www.html5tricks.com/ta ...

  7. exchange 2010

    Set-MailboxFolderPermission dalian:\Calendar -User Default -AccessRights Reviewer C:\>$rooms = Ge ...

  8. JUnit 入门

    JUNIT了解学习 转自:关于Java单元测试,你需要知道的一切 转自:JUnit 入门教程 JUnit高级用法之@RunWith @RunWith 关于@RunWith注解,官方文档是这么描述的: ...

  9. jstorm简介

    最近在研究jstorm,看了很多资料,所以也想分享出来一些. 安装部署 zeromq 简单快速的传输层框架,安装如下: wget http://download.zeromq.org/zeromq-2 ...

  10. Python json模块dumps loads

    python中json数据的使用. dumps和loads也是需要成对使用的,就像c++ new/delete malloc/free一样需要成对使用. 看着像json的字符串,也不一定是json字符 ...