日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jmeter java性能_jmeter java性能测试

發布時間:2024/9/27 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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請求,如果有參數化可設置參數化文件

上圖為兩個線程測試了一下,發現調用通過成功,響應數據正常返回,故該腳本可以正常使用

至于如何用這個jmx腳本做性能測試,我就不在重復了,參考我的博文-jmeter命令行運行-單節點測試或者分布式測試

總結

以上是生活随笔為你收集整理的jmeter java性能_jmeter java性能测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。