首页

文章

用JMeter工具做压力测试对此工具不熟,请教各位高...

发布网友 发布时间:2022-04-19 10:11

我来回答

1个回答

热心网友 时间:2022-03-29 23:56

供参考
场景:测试java程序模块的性能(就是那种用JAVA语言编写且可以独立打包成JAR包的功能模块的性能测试,一般的测试工具是无法提供对这样的对象的性能测试的支持的,当然通过JMETER来测试,也是需要进行一定的辅助开发才行。);
1、右击测试计划-> 添加 -> Threads(Users) -> 线程组
2、设置线程属性,用于并发请求。
介绍:
线程数: 10
Ramp-Up Period(in seconds) : 2
循环次数: 4
含义:2秒种(内)启动10个线程,每个线程循环调用4次java请求 。(所以总体来说就是要执行40次请求。)
3、线程组右击 -> 添加 -> Sampler -> Java请求
以上是设置JMETER性能测试场景,而在这之前需要建立辅助测试类:

建立测试辅助类也有几个要点需要注意;
A.在JAVA工程中引入需要使用到的JMETER所属的核心的类包文件,ApacheJMeter_java.jar ,ApacheJMeter_core.jar ,这2个jar包在 %JMETER_HOME%/lib/ext/下,即在JMETER的资源目录的/lib/ext/可以找到;(原因:因为你将要写的辅助测试类将会使用到里面的一些方法,诸如SampleResult ,AbstractJavaSamplerClient,JavaSamplerContext等);
B.将写好并编辑测试无误的测试辅助类的工程打包成JAR包,然后再放回JMETER的资源目录的/lib/ext/下;(原因:这样,重新启动JMETER后,JMETER工具将会自动识别你刚加入的JAVA请求测试对象。在其“JAVA请求”—>”类名称”下拉选择框中就会出现你编写的测试辅助类,如果没有出现,请仔细检查以上的操作步骤;要不就无法接下来的测试工作。)

以下贴出我写的测试辅助类:(并不是所有的都适用,但可以作为概要,提示参考)
package com.test.jmeter;

import java.util.Random;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;

public class jmeterForCommunication extends AbstractJavaSamplerClient{

private static long start = 0;
private static long end = 0;

/**
* 重写构造函数
*/
@Override
public void setupTest(JavaSamplerContext context) {
// TODO Auto-generated method stub
super.setupTest(context);
start = System.currentTimeMillis();
}

/**
* 重写析构函数
*/
@Override
public void teardownTest(JavaSamplerContext context) {
// TODO Auto-generated method stub
super.teardownTest(context);
end = System.currentTimeMillis();
// 总体耗时
System.err.println("cost time:" + (end - start) / 1000 + "秒。");
}

/**
* 用户后续调用计算产生随机数
*/
public static double computer(double a,double b){
return a * b / a * a;
}

/**
* JMeter界面中可手工输入参数,代码里面通过此方法获取
*/
public Arguments getDefaultParameters() {

Arguments args = new Arguments();

return args;
}

/**
* 重写JMETER的runTest启动方法,测试用例的入口,相当于JAVA程序的main方法;
*/
@Override
public SampleResult runTest(JavaSamplerContext arg0) {
// TODO Auto-generated method stub
SampleResult sr = new SampleResult();
sr.sampleStart();

Random random = new Random();
for(int i=0; i<10000; i++){
computer(random.nextDouble(),random.nextDouble());
}

sr.setSuccessful(true);
sr.sampleEnd();
return sr;
}
/**
public static void main(String []args){

}
*/
PS:另外通过测试类调用要测试的JAR包的功能的代码,我这里就不贴出来了,一是因为每个人的会不一样,二是也涉及到公司的信息也不能外传;

4、线程组右击 -> 添加 -> * -> 用表格察看结果:(有很多种*,但也不是所有的都要打开使用到,一般打开2到3个足以,因为开多了也会一定程度上影响JMETER的测试收集数据的准确性。)

备注提示:
有一些快捷键操作可以方便快速使用,比如:
Ctrl + R,开始运行,
Ctrl + E,清除历史结果
土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 出师表高锰酸钾有画面了吗 2021年幼儿园新学期致家长一封信 电脑屏幕一条黑线怎么办? 销售代理商销售代理商的特点 商业代理商业代理的特征 如何看微信有没有开通微众银行 为什么微众没有开户 微众银行怎么开户 微众银行APP开户流程是什么? 唐古拉山海拔唐古拉山海拔是多少 怎么看待取消跳广场舞的人的退休金 如何选购新鲜的蓝田水柿? 恭城水柿柿树作用 创维洗衣机使用教程 创维全自动洗衣机怎么使用 自动开门器 狗羊属相婚姻相配吗 3岁的小孩不会说话怎么办 3岁孩子不会说话,应该挂什么科? 3岁小孩不会说话正常吗 鹿茸炖乌鸡怎么做? 新型冠状肺炎吃什么药可以预防 冰箱上电后一直响 使用jmeter进行压力测试及如何添加负载机 jmeter怎么用 如何使用Jmeter进行压力测试 如何用Jmeter做压力测试 Windows版和MAC版都是什么意思? 苹果笔记本一般自带什么操作系统? 木瓜一个吃不完怎么保存 买了个木瓜没熟,怎么办?如何让它熟的快些? 芒果和木瓜搭配吃可以吗 木瓜和芒果互相催熟吗? 芒果要怎么存放,能保鲜时间长一点啊? 木瓜为什么不可以放在冰箱里冷藏? 芒果怎么正确保存 木瓜可不可以和芒果一起吃? 芒果和木瓜能一起吃吗 木瓜和芒果可以一起吃吗 芒果和木瓜一起吃有什么好处 芒果和木瓜可以一起吃吗 404 Not Found 芒果木瓜可以一起吃吗 热带水果比如芒果,木瓜,香蕉这些可以放冰箱吗 怎么在windows系统中安装Jmeter压力测试工具 jmeter压力测试线程问题 jmeter 怎么测试登录压力测试 jemeter做压力测试需要哪些前提条件 jmeter压力测试,线程数500,线程组只有一个接口和线程数500,线程组有多个接口,两者有什么不同吗? 如何用JMeter对MySQL数据库进行压测 hession接口怎么使用jmeter做压力测试 jmeter压力测试线程问题 如何使用jmeter进行接口测试 jmeter 压力测试脚本怎么写 jmeter 压力测试各种值的意思 jmeter怎么做游戏服务端压力测试 jmeter压力测试可以支持多少用户 苹果股票从1984年到现在涨了287倍你怎么看? volvo地图mac版本是什么意思 梦见修理楼梯的预兆 梦见路难走,然后修阶梯 梦见在家请匠人修楼梯`是什么原因 梦见己故亲人叫哥哥帮我修楼梯? 梦见上楼梯上到最顶层
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com