IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> jmeter插件开发后置处理器 -> 正文阅读

[开发测试]jmeter插件开发后置处理器

? ? ? ? Jmeter具有强大的功能实现以及功能扩展,熟悉JAVA的可以进行二次开发,做一些可插拔式的插件,更加完善我们的测试工作。

? ? ? ? 项目中很多时候会遇到,需要我们保存在测试过程中生成的一些数据,一种简单的方法就是,添加Beanshell后置处理器,写输出的代码,这个之前的文章也有提到过:Jmeter输出结果到文件_社会小刚哥的博客-CSDN博客,代码很简单,有需要的可以参考。

? ? ? ? 今天介绍的是,自己去做出来一个用于输出的后置处理器,也是需要用到两个jmeter的jar包:ApacheJmeter_core.jar,ApacheJmeter_java.jar。后置处理器需要我们创建固定的包名org.apache.jmeter.extractor;新建class继承AbstractTestElement类。

? ? ? ?先来看代码实现:

package org.apache.jmeter.extractor;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

import org.apache.jmeter.processor.PostProcessor;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.testbeans.TestBean;
import org.apache.jmeter.testelement.AbstractTestElement;

public class OutputPostProcessor extends AbstractTestElement implements PostProcessor, TestBean {

	private static final long serialVersionUID = 260L;
	private String path;
	
	@Override
	public void process() {
		SampleResult sr = new SampleResult();
		sr.setSampleLabel(getName());
		sr.sampleStart();
		
		try {
			
			FileWriter  filename = new FileWriter(path,true);
			BufferedWriter out = new BufferedWriter(filename);
			out.write(sr+"\n");
			out.close();
			filename.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}


	public void setPath(String  path) {
		this.path = path;
	}

	public String getPath() {
		return path;
	}
	

}

? ? ? ? ?这里实现的比较偷懒,因为jmeter调试取样器的特性,直接在名称处写入${param},运行测试就可以得到我们需要的数据,所以直接使用jmeter官方获取的这个代码:

SampleResult sr = new SampleResult();
sr.setSampleLabel(getName());
sr.sampleStart();

? ? ? ? 有了需要输出的数据,在添加一个可以指定的路径就可以,这个是添加了一个String类型的path,并构造set、get方法。

private String path;

public void setPath(String  path) {
	this.path = path;
}

public String getPath() {
	return path;
}

? ? ? ? 很简单对吧,这样用于输出的后置处理器就完成了,接下来打包放入jmeter/lib/ext目录,来看看效果,添加后置处理器就可以看到OutputPostProcessor了。

? ? ? ? ?再来实际测试用一下这个组件,运行四遍测试请求一下百度,并使用正则提取器获取三个参数值,多个值使用逗号隔开,输出到指定文件。

? ? ? ? ?可以说是一个比较实用的插件了,当然仅供参考,还有很多不足的地方,可以自行完善,比如输出时可以定义好标题头,然后忽略首行。不嫌麻烦的可以自己提前新建好CSV文件,写好标题头,输出时会自动忽略首行,多次输出不会覆盖之前的结果。

? ? ? ? ?学废了吗,以后输出数据到文件就不用写Beanshell代码了,直接使用Output后置处理器吧,觉得有用的就点个赞吧!可以上我的主页直接下载jar包使用。

????????相互学习,共同进步!

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 12:05:09  更:2021-10-15 12:05:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:43:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码