jmeter java性能_jmeter java性能测试

本篇文章主要讲解jmeter如何测试java请求,以项目中某个接口为例,请求数据为post,返回也为post

1:新建maven工程,pom文件为

1

2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

3 4.0.0

4 com.ustcinfo.jmeter

5 java-post

6 0.0.1-SNAPSHOT

7 HttpRequestPost

8

9

10

11 commons-io

12 commons-io

13 2.5

14

15

16

17 org.apache.jmeter

18 ApacheJMeter_core

19 3.0

20

21

22 org.apache.jmeter

23 ApacheJMeter_java

24 3.0

25

26

27

28

29

30

31 maven-assembly-plugin

32

33 src/main/assembly/assembly.xml

34

35

36

37 make-assembly

38 package

39

40 single

41

42

43

44

45

46

47

2:新建JmeHttpRequestPost.java类

1 packagecom.ustcinfo.jmeter;2

3 importjava.io.DataOutputStream;4 importjava.io.InputStream;5 importjava.net.URL;6 importjava.net.URLConnection;7

8 importorg.apache.commons.io.IOUtils;9 importorg.apache.jmeter.config.Arguments;10 importorg.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;11 importorg.apache.jmeter.protocol.java.sampler.JavaSamplerContext;12 importorg.apache.jmeter.samplers.SampleResult;13

14 public class JmeHttpRequestPost extendsAbstractJavaSamplerClient {15

16 private String number = "number";17 private String number_value = "18134536460";18

19

20 /*

21 * 参数化,number22 */

23 @Override24 publicArguments getDefaultParameters() {25 Arguments params = newArguments();26 params.addArgument(number, number_value);27 returnparams;28 }29

30 /*

31 * 运行方法32 */

33 publicSampleResult runTest(JavaSamplerContext arg0) {34 SampleResult sr = newSampleResult();35 try{36 /*参数获取*/

37 String number = arg0.getParameter("number");38 sr.sampleStart();39 /*请求地址*/

40 String URL = "http://ip:port/WSSPort/";41 /*请求报文*/

42 String Json = "";43 Json="{"

44 +"\"TcpCont\":{"

45 +"\"ServiceCode\":\"/ServiceBus/custView/cust/cust001\","

46 +"\"SrcSysID\":\"100000\","

47 +"\"TransactionID\":\"3b236e76-4662-4df6-8c61-46a8e3d2df56\","

48 +"\"MsgId\":\"\""

49 +"},"

50 +"\"SvcCont\":{"

51 +"\"SOO\":["

52 +"{"

53 +"\"PUB_REQ\":{"

54 +"\"PAGE_INDEX\":\"1\","

55 +"\"PAGE_SIZE\":\"5\","

56 +"\"SVC_CONT_VER\":\"1.0\","

57 +"\"TYPE\":\"QRY_CUST_INFO\""

58 +"},"

59 +"\"RETURN_OBJECTS\":{"

60 +"\"ACCOUNT\":{"

61 +"\"FIELDS\":\"\""

62 +"},"

63 +"\"CONTACT\":{"

64 +"\"FIELDS\":\"\""

65 +"},"

66 +"\"CUST\":{"

67 +"\"FIELDS\":\"\""

68 +"},"

69 +"\"CUST_BRAND_LABEL\":{"

70 +"\"FIELDS\":\"\""

71 +"},"

72 +"\"CUST_POINT\":{"

73 +"\"FIELDS\":\"\""

74 +"},"

75 +"\"MANAGER\":{"

76 +"\"FIELDS\":\"CHANNEL_MEMBER_ID,MEMBER_NBR,CHANNEL_MEMBER_NAME,PHONE\""

77 +"},"

78 +"\"PARTY_CENTIFICATION\":{"

79 +"\"FIELDS\":\"\""

80 +"},"

81 +"\"TB_PTY_CERTIF_ID_VAR_INFO\":{"

82 +"\"FIELDS\":\"\""

83 +"},"

84 +"\"CUST_SPEC_INFO\":{"

85 +"\"FIELDS\":\"\""

86 +"}"

87 +"},"

88 +"\"CUST_REQ\":{"

89 +"\"CUST_ID\":\":getCustId("+number+",'4','',551)\","

90 +"\"LATN_ID\":\"551\","

91 +"\"PASSWORD\":\"\""

92 +"}"

93 +"}"

94 +"]"

95 +"}"

96 +"}";97 /*调用post请求方法*/

98 String postResult =doHttpPost(Json, URL);99 /*设置响应报文内容*/

100 sr.setResponseData(postResult, null);101 sr.setDataType(SampleResult.TEXT);102 sr.setSuccessful(true);103 sr.sampleEnd();104 } catch(Exception e) {105 e.printStackTrace();106 }107

108 returnsr;109 }110

111 /**

112 * doHttpPost:http发送json报文形式的post请求113 *@paramxmlInfo 请求报文114 *@paramURL 请求地址115 *@returnString 响应内容116 *@exception

117 */

118 public staticString doHttpPost(String xmlInfo, String URL) {119 byte[] xmlData =xmlInfo.getBytes();120 InputStream instr = null;121 try{122 URL url = newURL(URL);123 URLConnection urlCon =url.openConnection();124 urlCon.setDoOutput(true);125 urlCon.setDoInput(true);126 urlCon.setUseCaches(false);127 urlCon.setRequestProperty("Content-Type", "text/xml");128 urlCon.setRequestProperty("Content-length", String.valueOf(xmlData.length));129 DataOutputStream printout = newDataOutputStream(urlCon.getOutputStream());130 printout.write(xmlData);131 printout.flush();132 printout.close();133 instr =urlCon.getInputStream();134 byte[] bis =IOUtils.toByteArray(instr);135 String ResponseString = new String(bis, "UTF-8");136 if ((ResponseString == null) || ("".equals(ResponseString.trim()))) {137 System.out.println("返回空");138 }139 returnResponseString;140

141 } catch(Exception e) {142 e.printStackTrace();143 return "0";144 } finally{145 try{146 instr.close();147 } catch(Exception ex) {148 return "0";149 }150 }151 }152 }153

3:在maven工程src/main下面新建assembly.xml文件,用作maven打包

1

2 assembly

3

4 tar.gz

5

6 true

7

8

9 ${project.build.directory}/dubbo/META-INF/assembly/bin

10 bin

11 0755

12

13

14 src/main/assembly/conf

15 conf

16 0644

17

18

19

20

21 lib

22

23

24

4:打包该工程,maven install,打包完成后可以看到target下生成了两个文件一个java-post-0.0.1-SNAPSHOT-assembly.tar还有一个java-post-0.0.1-SNAPSHOT.jar

将java-post-0.0.1-SNAPSHOT-assembly.tar中的lib文件夹下所有的jar包拷贝到jmeter的lib目录下,如果有重复的,则不替换用jmeter原生的jar包

将java-post-0.0.1-SNAPSHOT.jar拷贝到jmeter的lib/ext目录下

5:启动jmeter,验证该jar功能是否正常,新建一个java请求,如果有参数化可设置参数化文件

d7fe2d281976e8f3cd62a27d8e60553c.png

上图为两个线程测试了一下,发现调用通过成功,响应数据正常返回,故该脚本可以正常使用

至于如何用这个jmx脚本做性能测试,我就不在重复了,参考我的博文-jmeter命令行运行-单节点测试或者分布式测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526044.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ckeditor java 上传_java使用CKEditor实现图片上传功能

java如何使用ckeditor实现图片上传功能,具体内容如下1.根据实际需要下载指定的ckeditor2.删除文件ckeditor/plugins/image/dialogs/image.js预览框中文本内容,并修改hidden属性值为显示上传选项卡删除image.js中包含在双引号中的上述文本将image.js中的h…

java 程序流程控制知识点_JAVA基础知识点梳理三:流程控制语句

条件语句之 if语法:执行过程:例:int score 65;if (score > 60) {System.out.println("该学生及格");}//注:如果 if 条件成立时的执行语句只有一条,大括弧可以省略,但如果执行语句有多条&…

寂静岭3java攻略_《寂静岭3HD》通关心得:感人之佳作

作者:jet1942(原帖点击进入)寂静岭是什么?它是人的内心世界,它是人赎罪的地方。读了这句话后,是不是感觉意境非常深邃,还带有些恐怖感?是的,这就是寂静岭的魅力所在,作为一款AVG类游戏,他与生化危机不同&…

form表单图片预览 layui_layui 实现图片上传和预览

[学习笔记]图片不自动上传并在表单提交时再上传,看代码。附上表单页面前台实现autocomplete"off" class"layui-input" disabled>autocomplete"off" class"layui-input">上传图片确定layui.use([form, layer, upload]…

java不会框架怎么办_感觉学java无从下手了,各种框架乱七八糟,感觉好乱。该怎么办!?...

image各种各样的编程语言不断崛起,但唯有Java是牢牢占据着老大的位置,目前几乎90%以上的大中型互联网应用系统在服务器端开发首选Java。因此,也是吸引了不少年轻人投入到Java的学习之中。但不得不说,Java作为老牌编程语言&#xf…

java基数排序 数组_万字长文带你掌握Java数组与排序,代码实现原理都帮你搞明白!...

查找元素索引位置基本查找根据数组元素找出该元素第一次在数组中出现的索引public class TestArray1 {public static void main(String[] args) {//定义一个数组int[] arr{10,20,70,10,90,100,1,2};//根据元素查找出该元素在数组中第一次出现的索引int indexgetIndexByEle(arr,…

php是走什么协议,TCP是什么协议

TCP代表传输控制协议,是Internet协议套件中的基本协议,是一种网络通信协议;它规定如何建立和维护两个程序可以交换数据的连接,通过Internet发送信息的方式。TCP代表传输控制协议,是Internet协议套件中的基本协议&#…

php yii 命令行,命令行模式(Command)

命令行模式(Command)3.2.1. 目的为了封装调用和解耦。我们有一个调用程序和一个接收器。 这种模式使用「命令行」将方法调用委托给接收器并且呈现相同的「执行」方法。 因此,调用程序只知道调用「执行」去处理客户端的命令。接收器会从调用程序中分离出来。这个模式…

php 获取 js json数据类型,JS基础-JS的数据类型和访问/流程控制/JSON格式字符串和js对象相互转换...

JS的数据类型和访问/流程控制/JSON格式字符串和js对象相互转换1. JS的数据类型和访问1.1. 原始类型JS中的原始数据类型有: number , string , boolean ;声明变量使用 var 关键字./* 数字类型 */varyear2020;/* 字符串类型 */varnamezhangsan;/* 布尔类型 */varisUpdatefalse;获…

python 数据挖掘论文,Orange:一个基于 Python 的数据挖掘和机器学习平台

Orange 简介Orange 是一个开源的数据挖掘和机器学习软件。Orange 基于 Python 和 C/C 开发,提供了一系列的数据探索、可视化、预处理以及建模组件。Orange 拥有漂亮直观的交互式用户界面,非常适合新手进行探索性数据分析和可视化展示;同时高级…

php量表是什么心理量表,心理学中的“5大心理学测评量表”你知道多少?

原标题:心理学中的“5大心理学测评量表”你知道多少?心理学知识中涵盖了类型丰富的心理学测评量表,你知道其中的多少呢?1、《应对方式问卷》《应对方式问卷》由肖计划等人参照国内外应对研究的问卷内容以及有关应对理论&#xff0…

php对象魔术方法,php学习之类与对象的魔术方法的使用

原标题:php学习之类与对象的魔术方法的使用魔术方法有哪些__construct:构造方法__destuct:析构方法__call:在对象中调用一个不可访问的方法时。__call()会被调用__callStatic:__get:调用不可访问的属性__se…

linux查看发起ddos攻击的ip,在Linux上使用netstat命令查证DDOS攻击的方法

导读DOS攻击或者DDOS攻击是试图让机器或者网络资源不可用的攻击。这种攻击的攻击目标网站或者服务通常是托管在高防服务器比如银行,信用卡支付网管,甚至根域名服务器。服务器出现缓慢的状况可能由很多事情导致,比如错误的配置,脚本…

linux应用程序逆向,Linux下查看并下载命令源码包(根据命令/应用程序逆向获取并且安装其所属源码包)...

使用linux的过程中,我们会熟悉各种命令,偶尔我们不禁会问,这些命令是怎么实现的,学习他们其实是学习linux高级系统编程很快捷的方法。这些命令的源码肯定是存放在相应的包里面,但是是哪些包呢?发行版的包管…

linux windows变色龙,体验开源变色龙SUSE Linux Enterprise Server 11

体验开源变色龙SUSE Linux Enterprise Server 11SUSE Linux Enterprise Server 11主要针对的是企业用户,SUSE产品分为SUSE Linux Enterprise Desktop(SLED)和SUSE Linux Enterprise Server(SLES)两个版本。笔者测试的版本为Server版本,主要面向SMB甚至是…

c语言数组下标越界检查程序,数组下标越界

已结贴√问题点数:20 回复次数:11数组下标越界题目是一个有10个元素的数组,存有10个考生的分数,写5个函数,分别计算总分,最高分,最低分,平均分,分数升序排列。我写了5函数…

weex android 性能,跨越适配性能那道坎,企鹅电竞Android weex优化

作者:龙泉,腾讯企鹅电竞工程师商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。WeTest 导读企鹅电竞从17年6月接入weex,到现在已经有一年半的时间,这段时间里面,针对遇到的问题,企鹅电…

华为5g鸿蒙折叠,华为5G折叠概念新机:内折叠+麒麟9000+鸿蒙OS 这才是华为的实力...

从手机二十多年的发展历史来看,现在很多形态各异的智能手机,其设计思路与功能机时代一样,比如三星Fold的折叠手机,就和功能机时代的翻盖手机类似,又或者OPPO的X 2021卷轴屏概念机,则和功能机时代的滑屏设计…

iis7.5配置 html,windows server 2008R2系统 IIS7.5配置伪静态的方法(urlrewrite)

这篇文章主要介绍了windows server 2008R2系统 IIS7.5配置伪静态页面 ,需要的朋友可以参考下从网上找了一下,原来微软IIS官方网站给IIS7及以后续版本提供了个URL重写组件。下载地址:http://www.iis.net/download/URLRewrite或者//www.iis7.com/softs/479…

cad多线段长度计算总和_没想到啊,我平时用的CAD多段线有这么多学问

很多人都说,CAD用多段线来代替直线绘图会比较方便,因为多段线除了常规直线功能之外,也能画弧线,更重要的是,一次命令执行的线条为一个整体,操作方便。难道多段线PL仅仅只有这明面上的实力吗?当然…