You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Jmeter是运行在JVM之上,因此需要设计到JVM相关配置。
jmeter.bat配置取一段一起学习:
set HEAP: 设置JVM堆大小,-xms(初始),-xmx(最大堆大小),-xmn(年轻代,官方推荐年轻代大小是最大大小的3/8)。
set NEW: 设置年轻代大小-XX:NewSize设置初始化大小,-XX:MaxNewSize年轻代最大内存。这个设置云-xmn有重复,一般使用-xmn来设置。年轻代分Eden区和Survivor区。
set SURVIVOR: -XX:SurvivorRation=8,设置Surviovor与Eden区大小的比值。由于surviovor有两个,所有比值为2/(2+8)=1/5。Eden占8/(2+8)=4/5。
set TENURING: -XX:MaxTenuringThreshold=2,年轻代晋升年老代周期(也就是经过多少次GC还存活)。
set PERM: -XX:PermSize,持久代大小,如果要对持久代进行垃圾回收就设置:-XX:+CMSClassUnloadingEnabled。
set DUMP: -XX:+HeapDumpOnOutOfMemoryError,设置当内存溢出是Dump内存信息。
分组 我们把每个URL看成一个组。在组间添加分割,每个组放入一个新的控制器。只存储每个组的第一个样本(使用缓存,而非每次请求都要下载,但对于CDN区进行验证的时候就不能选择此选项)。put each group in new transaction controller(每次请求都放入一个控制器)。
TYPE 默认为空,可选项为:HttpClient3.1、HttpClient4、JAVA、空值。选择JAVA使用Jdk中的net包模拟浏览器、使用httpclient3.1或httpclient4模拟浏览器。空值默认使用jmeter.properties中jmeter.httpsampler的配置。
props:(JMeterProperties - class java.util.Properties):操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。
快速学习Jmeter性能测试工具
本文将从零基础开始学习JMeter工具,文章主要包括JMeter基础知识、JMeter最简开发流程、运行与监听、JMeter元件库、脚本开发等方面讲解JMeter性能测试工具。
包括工具介绍、安装、相关工具安装、目录介绍、体系结构介绍、运行原理介绍等,有一定基础的同学可以跳过。
虽然叫JMeter最简开发流程,其实包含了性能测试中的常用关键字,即录制(其他工具录制导入、JMeter录制导入)、参数化、关联、事务、集合点、检查点等。
运行场景中主要介绍线程组、GUI运行、非GUI运行,远程运行、JMeter自身性能参数配置;以及常见的报告产生方法
将介绍最迷惑初学者的元件运行顺序、常见元件详解、各类元件总结分析与简述。
将针对常用的采样器进行讲解主要有:BeanShell、FTP、JAVA请求、JDBC请求、JUnit请求、SOAPUI接口测试、RESTFUL接口测试等。
JMeter基础
JMeter介绍
Apache JMeter是Apache组织开发的基于Java的压力测试工具。
![image.png](https://camo.githubusercontent.com/d8edc72f12453d681839bf7f871447ac0e6078b23c85019d78360231d1844c56/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f706e672f31303338373231342f313631343231393633383736382d65666333636266322d643665302d343538332d383130352d6636333166653761313739652e706e6723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d363932266d617267696e3d2535426f626a6563742532304f626a656374253544266e616d653d696d6167652e706e67266f726967696e4865696768743d363932266f726967696e57696474683d3933392673697a653d333835333038267374617475733d646f6e65267374796c653d6e6f6e652677696474683d393339)
![image.png](https://camo.githubusercontent.com/cd3f09fc97d09666069b55e9b6ed4cebec599c4071530c33af721204f4c534a9/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f706e672f31303338373231342f313631343231393636323932332d39396230326134612d393436322d343239372d393034302d3434303266323535376235372e706e6723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d343833266d617267696e3d2535426f626a6563742532304f626a656374253544266e616d653d696d6167652e706e67266f726967696e4865696768743d343833266f726967696e57696474683d3739322673697a653d313335313534267374617475733d646f6e65267374796c653d6e6f6e652677696474683d373932)
用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。
JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。
JMeter安装
Windows下安装
JMeter Windows下载地址:
http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-3.1.zip。确保已经安装JDK1.7以上版本。
设置环境变量:
java -version
Linux下安装
JMeter Linux下载地址:
http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-3.1.tgz
解压:
指定path目录:
安装完成后运行,验证安装是否成功。
Badboy安装
badboy主界面介绍:
![](https://camo.githubusercontent.com/cf823d816378b332e2dbb4ccfaf56186c784ed78d2fc11fe7e596054b3b42b2a/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232303031353836392d62626161356663312d386637392d346432622d393731362d3537356361363933313166352e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333438266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d373632266f726967696e57696474683d313239312673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
badboy使用步骤如:
badboy不能发散,必定是一个工具,不能三言两语搞定。如果有同学感兴趣,后面可以开专门的chat来聊一聊badboy自动化测试工具。
JMeter目录介绍
bin:
可执行文件目录
docs:
文档目录。api:api文件以及css和图像样式
extras:
扩展插件目录,目录下的文件提供了对ant的支持。
lib:
所用到的插件目录,里面全是jar包,JMeter 会自动在 JMETER_HOME/lib 和 ext 目录下寻找需要的类。
lib目录下的ext子目录是jmeter的核心jar包;用户扩展所依濑的包不能直接放到lib下,要放到lib/ext下(注意最新版本是这样,之前个别版本可能反过来,所以很多同学两边都放,两边都放好处在于一定OK,但坏处在于当用户误操作时可能导致两边版本不一样,不好定位问题)。junit子目录是放junit脚本的。
☞注意: 无法识别 zip 格式的包文件,所以需要的包文件均要求以 .jar 结尾。
printable_docs:
usermanual子目录下是jmeter用户手册,尤其是component_reference.html是最常用的核心元件帮助手册。
JMeter体系结构
讲JMeter结构前,先看看大家常用工具LR的结构:
![](https://camo.githubusercontent.com/a17a0c342565574a888e8d595d0cc28bca91f6dc14b3f3b5b249ff108c426050/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f706e672f31303338373231342f313631343232303333353431332d66623635306139302d373637642d343964382d613035632d6662656637343131633661342e706e6723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333635266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d333635266f726967696e57696474683d3537342673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353734)
LR主要由:脚本产生器、负载控制器(含调度、监控)、压力产生器、分析器组成。脚本产生器负责生产用户代码模拟单个用户以及为模拟多个用户做准备;负载控制器用于控制压力产生器的运行,并收集测试情况、性能计数等;压力产生机主要负责模拟许多用户对服务器进行测试;而分析器主要通过图表、表格分数测试情况用于测试者产生测试报告。
下图为JMeter核心结构关系图,解释了性能核心关键字所对应的元件,以及个元件的位置关系。 整体来讲:JMeter主要由以下4部分组成:一部分负责模拟,一部分负责验证,一部分负责收集结构,一部分负责周边。各部分用途见后面分解:
![](https://camo.githubusercontent.com/39f1498e5b6954500c014079e25cb844008ed2871dda9675b97b25af27968542/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232303333353339342d35373136653433622d373939662d343765332d613036312d6339386230626436376539652e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d323735266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d343939266f726967696e57696474683d313037302673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
模拟部分:取样器、配置元件、控制器、定时器、前置处理器、后置处理器、线程组。模拟部分线程组用来建立线程池,多线程运行其他模拟、断言、监听部分;配置元件主要用来做一些数据准备,通用请求准备(如设置一些默认值HTTP请求的、JAVA请求的);控制器主要处理逻辑关系如循环、分支、交替、事务等;定时器用于处理思考时间、集合点、随机时间等工作;前置处理器用来对请求前的数据进行处理(如JDBC请求前的数据准备等);后置处理器用来对请求返回后的数据进行处理(如关联)。
验证部分:断言。断言是测试的精髓,用于判断返回值与预期一致。
收集和展示部分:监听器。是用来收集数据和展示数据(如:测试报告)。
周边部分:工作台(可以防止备用元件、抽象的模块等)。
JMeter分布式运行原理图
![](https://camo.githubusercontent.com/c9cf4cb381c9046e337ce88575c164616503b8a870d021436846d4bceae6ec0e/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232303333353432392d64316434386430392d363366392d343861362d396163342d6431306337393437383830632e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d323332266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d333734266f726967696e57696474683d3935312673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
控制机:(调度与收集)
负载机:(Agent、多线程、脚本产生器)
测试计划是用来管理整个测试的,计划和线程组都可以理解为容器,是用来放东西的。测试计划可以用来管理测试套、测试工程、测试包等。
一个测试计划至少一个包括:1个测试计划、1个以上线程组、1个以上取样器、1个以上监听器。
JMeter最简开发流程
工作区介绍
元件树、编辑区、菜单及工具区,具体做什么下图有说明。
![](https://camo.githubusercontent.com/23c8234a8f92aa79c6f6bd272677c925e8b6eed35df9f8fb4a03a7dbc7032c8e/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031303937332d34333132316134312d383763382d343364322d386361622d3162303963613665663563652e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333332266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d373638266f726967696e57696474683d313336362673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
录制之一:badboy录制
录制、参数化、检查点、回放。
从badboy File菜单中导出JMeter脚本,使用JMeter直接打开。
添加查看结果树监听器让执行结果可见。
修正断言,断言可能在超级链接、HTML元素大小写变化等方面会发生变化,需要回复修正。
增强JMeter测试计划可读性。
录制之二:JMeter录制
JMeter-【工作台】-【非测试元件】-【HTTP代理服务器】中配置代理。
为浏览器网页访问添加代理
清空浏览器缓存、清空浏览器主页(为什么)。
缺点:
试着访问https://www.baidu.com。证书位置$JMeter_Home/bin/.crt。
JMeter非录制开发开发流程
放弃使用录制方法进行性能测试。
实例:查询一个城市的天气预报。
使用抓包工具观察用户页面请求所产生的请求列表,筛选最核心的(不然一些css/js/imag一般情况下可以忽略)。具体思路如下:同抓包发现,查询一个城市的天气是先通过查询城市代码、然后通过城市代码查询天气预报。
第一个Http请求:
![](https://camo.githubusercontent.com/61700ff2e207f3d0c052564ab2b70a7b54e4121f2d83c1c800521b82fa75dcab/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031303936382d61313933313638392d346437642d343566332d383764652d3836646164336665333536662e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333330266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d363131266f726967696e57696474683d313039322673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/dcb0795ecff80780e59b2aeea0bdbccdc6441c2781d8e401f06cd093102058c6/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031303937372d38383565386566642d646232382d343334622d386336322d3034323666336465323165332e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333138266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d353838266f726967696e57696474683d313039302673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/365725946af3f2ad0c5eb4742205bf5020a1dbadb8949ffba45bec488bd9e18d/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313030392d63326635376562362d666362362d343834632d613638662d6464613631626530353963612e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333138266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d353837266f726967696e57696474683d313038382673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/24a1494a1bf2bbe22aa47515ca810cb8551e1f7cd5391b3bfddeb6ad31fc9c74/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031303939312d66306237336136392d653638612d343832642d616664362d3532393134353331303164382e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333133266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d373233266f726967696e57696474683d313336342673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
Http信息头管理器:
Referer:提供了Request的上下文信息的服务器,告诉服务器我是从哪个链接过来的。 由于服务器有限制,因此必须要告诉接口你是从他希望的服务器过来,不然你可能得不到想要的数据。
响应断言:
我们想返回的数据中包括我们想要的结果。
断言结果:当断言失败时,断言结果会把失败原因给指出来。
查看结构树:
如果使用单元数据,用户可选用“用户自定义变量”进行数据引入。
![](https://camo.githubusercontent.com/0dcbb4719685d56a02d69c4215a2020914217ea17540cde9b954b36005037760/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031303936302d64343039613137612d373966382d343934372d396434322d3432313263393235346435392e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333134266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d373237266f726967696e57696474683d313336342673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/1a0642df0e4187042116f268ae619c849f42869c9f0d5a11f6937e9575919c39/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031303936392d63663538353661652d623837382d343035622d393433382d3365383734363031343439662e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333134266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d373236266f726967696e57696474683d313336352673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
用户自定义变量:
继续使用以上用例,进行简单的参数化,使用csv Data setConfig引入多样的数据,这样就可以在线程组中设置循环运行或多线程运行。
csv Data set Config:
后置处理器——正则表达式提取器:
![](https://camo.githubusercontent.com/9be3def3d164aa077c0da20390b677b8bf963fe5f74a0a961ee0b784c1e10a45/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313937342d64383933336364372d373363662d346431332d396165392d3638346431396134396633312e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d323037266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d343739266f726967696e57696474683d313336352673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/8dad6f09edbcd0917b2ab4484c791fc508fccf4579825d512a799a4460106d83/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313439382d64616562323663382d386136392d343231632d623832662d3462613437623033393938392e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333033266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d363937266f726967696e57696474683d313335382673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
第二个HTTP请求:
http://www.weather.com.cn/weather1d/10101010007A.shtml#search
10101010007A使用正则表达式表达的变量进行替换:
如果对正则表达式不了解的同学可以下载一个正则表达式测试工具,如:RegexTester。
断言——Response Assertion:
![](https://camo.githubusercontent.com/21be12ce9fa66ef8c742375bfb3d5a8c778941df971bf89d0f9abcc03aad3d18/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313035362d37383138613834632d303837652d343961392d393235332d3830666562373832653436372e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333331266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d383630266f726967696e57696474683d313533342673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
逻辑控制器——事务控制器:
![](https://camo.githubusercontent.com/c879a51b61004bc7eda056bb93eeeff9caa9e00d622e43d4197be2cf45a5f37b/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031323033352d63613738303030332d303136612d346161322d613062392d6639653265303634396230652e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333332266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d383538266f726967696e57696474683d313532372673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
定时器——同步定时器:
![](https://camo.githubusercontent.com/46477d6e86784ee6760160f5181e8cccf9c036d39bd9d5e3a2338c6db0bc3a04/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313032392d62313465326665352d616264322d343333322d386330652d3063653535376361373738342e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333330266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d383537266f726967696e57696474683d313533322673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
用于增强用户编写的脚本:
![](https://camo.githubusercontent.com/9396007939ba0f35f68a6a77f815bf008fa699f32bd74b6e845a76fcd961f076/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313031312d66326539643538342d663438302d343962342d616634662d6337333832373061643066372e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333333266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d363134266f726967696e57696474683d313038392673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/83f478c72af54a15d4577847db9263682607af7afc2d21573876b6c9096a41da/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313132382d64646333643464302d303334362d346533352d613263662d3233653532343966386332372e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333332266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d383632266f726967696e57696474683d313533312673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/9540b7e7f0df77d977adef6353654466733bdff91a9d54473f5e870c8bb00da6/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313132312d36366539396331342d393536622d346533642d613435362d3137343063663635353939352e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333331266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d383538266f726967696e57696474683d313532392673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/a267f1690acd0443cb1e77a68fc3e031ce3fefbb844364c8fea5a7e38949b7d4/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313036382d66333431326661642d333738372d343632372d396532662d3762313133386239636435632e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333039266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d383034266f726967696e57696474683d313533332673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
生成后作为变量使用:
函数助手脚本为什么会失败?明明是查询的城市是北京,为什么断言变成了上海。
看看这个代码为何会成功,思考为什么?(具体原因后面讲述元件运行顺序的时候会重点说明。)
运行与监听
线程组
通过【线程组】实现并发。同时去执行相同的一批次任务。每个线程之间都是隔离的,互不影响的。一个线程的执行过程中,操作的变量,不会影响其他线程的变量值。
Delay Thread creation until needed: 默认情况下,测试开始的时候,所有线程就被创建完了。如果勾选了此选项,那么线程只会在合适的需要用到的时候创建。
Ramp-Up Period:线程启动的时间,下图的线程配置,多少个线程,多长启动时间(秒),每个线程执行多少次循环。那么每秒会启动一个线程,每次循环执行一个请求。
取样器错误:
当线程执行取样器失败的时候,要执行的策略选项:
调度器:
如果不想立即执行执行,可以通过调度器控制测试执行的开始时间和结束时间。
场景运行
GUI运行
分别:运行、忽略所有暂停、停止、关闭线程、远程运行、远程停止、远程下线。
远程运行步骤:
1)修改设置控制机jmeter.properties文件,比如远程机的地址为192.168.0.102。
2)运行远程机的jmeter-server.bat批处理文件。
3)在控制机上运行远程按钮。
非GUI运行
使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资源。
1)需要设置PATH环境变量把JMeter软件目录囊括进去。 如:
2)命令行jmeter -n -t testplanFilename -l listenerFilename
如:
这次我们可以清晰地看到每个线程的执行情况。这里是我们使用非 GUI 模式运行测试脚本时可以使用的一些命令:
例如:
![](https://camo.githubusercontent.com/85ef2f4341b725735a6567efc2c47d7538dac6f4bb757c5cbd8e22cd0b2d14d9/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313037312d66656361353036612d653838632d343535372d386564632d6265356532353631616233302e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d343038266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d383534266f726967696e57696474683d313233342673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
执行结果可以使用 GUI模式下的聚合报告查看,比如你想要看 logfile1.jtl 的报告,可以打开 JMeter GUI 界面 ->测试计划 -> 添加线程组 -> 添加聚合报告 ->点击"所有数据写入一个文件"下的 "浏览..."按钮找到你刚生成的jtl文件就可以对执行结果进行直观分析了。
从文件查看聚合报告:
性能参数配置
Jmeter是运行在JVM之上,因此需要设计到JVM相关配置。
![](https://camo.githubusercontent.com/32d2febcb572f3442d614447d9495670d94ac67906d89c14ede640ac6d77d9b9/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313038372d66643333323632662d663039372d346432372d626236332d6431393430653335396464352e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d323435266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d343832266f726967696e57696474683d313136302673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
jmeter.bat配置取一段一起学习:
set HEAP: 设置JVM堆大小,-xms(初始),-xmx(最大堆大小),-xmn(年轻代,官方推荐年轻代大小是最大大小的3/8)。
set NEW: 设置年轻代大小-XX:NewSize设置初始化大小,-XX:MaxNewSize年轻代最大内存。这个设置云-xmn有重复,一般使用-xmn来设置。年轻代分Eden区和Survivor区。
set SURVIVOR: -XX:SurvivorRation=8,设置Surviovor与Eden区大小的比值。由于surviovor有两个,所有比值为2/(2+8)=1/5。Eden占8/(2+8)=4/5。
set TENURING: -XX:MaxTenuringThreshold=2,年轻代晋升年老代周期(也就是经过多少次GC还存活)。
set PERM: -XX:PermSize,持久代大小,如果要对持久代进行垃圾回收就设置:-XX:+CMSClassUnloadingEnabled。
set DUMP: -XX:+HeapDumpOnOutOfMemoryError,设置当内存溢出是Dump内存信息。
测试监听
summary Report
aggregate Report聚合报告
JMeter元件库
元件的运行顺序和作用域是JMeter最精髓的东西,当然也JMeter优缺点的体现地,感兴趣的同学可以重点看看提供给大家的汇总表。
执行顺序
元件执行顺序:"配置元件config elements" 、"前置处理程序Per-processors" 、"定时器timers"、"取样器sampler"、"后置处理程序post-processors" 、"断言assertions" 、"监听器listeners" 。
作用域
元件作用域:配置元件,影响作用域内所有元件;前置处理程序,作用域内每个取样器之前执行;定时器,作用域内每个取样器有效;取样器,无作用域;后置处理程序,作用域内每个取样器之后执行;断言,作用域内。
![](https://camo.githubusercontent.com/c0715ae175278ddbe1895fb184f67f6bcda2ba5a1a3df2f6872c7f508665029b/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313136382d38623934303863632d386636332d343638342d623233342d3731346634313465386338622e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d323235266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d363635266f726967696e57696474683d313734312673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/7f1987636f895c076d7ad9e0005d54c5736cfb8bf12f57a45b12a47948fe2022/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313134302d38323265306332392d393138622d343530642d393461372d3861623162326439623463632e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d3736266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d323232266f726967696e57696474683d313732302673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/532bba7df555d7e20745e85231031d65f6cec3e3b8d9ff06d729f622f131b416/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313130312d65656561303037362d613837662d343334622d626263662d3965343366656338303039372e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333331266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d373636266f726967696e57696474683d313336362673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
每个取样器执行后的结果校验;监听器,作用域内每个取样器的信息并呈现;逻辑控制器,作用域于子节点取样器和逻辑控制器。父节点不是取样器,作用域是其父节点下其他所有后代节点(子节点和其下的所有节点)。
元件全局分析:
作用域与顺序:
实例分析
详解常见元件库
HTTP代理服务器
对于一些HTTPS协议的系统需要在启动代理后,安装JMeter/bin下的证书,才能使用代理服务器,如果手机的录制,需要把设计手机的代理服务器、端口,并在手机段安装证书。
![](https://camo.githubusercontent.com/10030b6e38a4df1edd261756cc62942769fbad3c7b907a648b396c15b3a633bb/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313135362d37626261363864622d363237322d343836382d393637302d6639616439623735663434662e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333039266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d383030266f726967696e57696474683d313532372673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
上图中1/7/8条需要单独说明:
Prefix:对每个录制的http请求的前缀命名,默认为空,则录制的请求会按照数字递增的方式进行命名。
HTTP请求
http请求的执行引擎,可以通过修改jmeter/bin下的jmeter.properties更换。
![](https://camo.githubusercontent.com/bb33fe4440ea9ad7cd233508817c54b0f1c029067debf77bb984c07f193ce747/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f706e672f31303338373231342f313631343232313031313138332d38616237643431652d323034352d343338302d623362302d3962653261373835396333362e706e6723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d343339266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d383132266f726967696e57696474683d313039322673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
用户定义的变量
${variableName}
![](https://camo.githubusercontent.com/f0b7d0edc06eb523c67a9ff26661c601a54cff68dbfa5ced613ef555dc96cbf0/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f706e672f31303338373231342f313631343232313031313136322d32326632653834392d626434332d346636612d396338622d3061373831643463653134352e706e6723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d3935266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d3935266f726967696e57696474683d3334382673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d333438)
Http Cookie管理器
每次清除cookies,每次线程组启动时都会清除cookie。
HC4CookiesHandler广泛用于APP,HC4CookiesHandler是用于支持HttpClient4的,而HC3CookiesHandler是用于支持HttpClient3的。
此规格忽略所有Cookie。被用来防止HttpClient接受和发送的Cookie。
Http Header管理器
头信息管理,常见的有:User-Agent、Connection( 允许客户端和服务器指定与请求/响应连接有关的选项如:keep-alive)、content-type、Accept、Cookie、location302重定向地址信息、Cache-Control。可以通过抓包工具、或查看录制的脚本、察看结果树找到相应的解释。
简单控制器
用来规范代码。
察看结果树
察看服务器返回信息、请求信息、采样信息。
正则表达式提取器
文中使用的正则表达式测试器(RegexTester):下载地址
![](https://camo.githubusercontent.com/964eadc9acf7a442a8f0ba56b75c4714e575bd0fc82f73d8227176190ff70dce/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313235342d66353261303034352d663031642d346137642d386361642d3765303335303738663538382e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333136266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d373331266f726967696e57696474683d313336332673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
响应断言
事务控制器
事务的成功与每个取样器的成功相关:
![](https://camo.githubusercontent.com/36509c9dfe9d8445c05d653ae5c70ff7cf7b4a6d6cc732117bb0e5ae8642665d/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313139382d65396339626361642d353238312d343933362d626562322d6435303634616665633966362e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333334266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d383732266f726967696e57696474683d313534302673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
同步定时器
若在超时时间内,性能测试并发场景设定的并发样本数量未达到,则jmeter认为超时,会立即执行并发。
CSV DATA SET CONFIG
![](https://camo.githubusercontent.com/77b8c149a0b550b1862f617218048907f0cddbe5a83dbf564d507dd04fe1ef44/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313234382d66303639393737382d666635642d343135612d613165352d3761666332353334373139322e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333134266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d373236266f726967696e57696474683d313336352673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
以下是CSV Data Set Config各个参数的简要说明:
函数助手
其他元件库
此部分实际应用时可通过搜索引擎查看相关配置。
定时器
逻辑控制器
配置元件
前置处理器
后置处理器
断言
监听器
脚本开发
BeanShell
什么是Bean Shell?
BeanShell官网地址
BeanShell的用法:
在此介绍下BeanShell Sampler的用法,其它的beahshell可以类推。在此我们使用beahshell调用自己写的工具类,工具类实现了求三个数相加之和的功能:
**
JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:
FTP请求
用于intenet上文件的双向传输。需要兼容不同的操作系统,需要遵循相同的协议;与FTP默认设置一样只是多了用户名和密码。设置与"FTP默认设置"基本一样只是多次用户名和密码。
![](https://camo.githubusercontent.com/ae02bb0cda6d9c3234f3ef47dd7ccf5e2beecf8cfed6f0159aa8faca86f25363/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031323331302d36336364663439372d333431612d346531312d623062382d3133306433356135336132652e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333331266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d383631266f726967696e57696474683d313533342673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
端口号不填写时默认为21:
☞使用二进制与文本传输区别
ASCII 方式和BINARY方式的区别是回车换行的处理,binary方式不对数据执行任何处理,ASCII 方式将回车换行转换为本机的回车字符,比如Unix下 是\n,Windows下是\r\n,Mac下是\r。
ASCII 方式下会转换文件,不一样的系统有不一样的行完毕符,unix系统下行完毕符是一个字节,即十六进制的0A,而ms的系统是两个字节,即十六进制的0D0A所以当你用ascii方式从unix的ftp server下载文件时(不论是二进制或许文本文件),每检测到一个字节是0A,就会自动插入一个0D,所以假设你的文件是二进制文件比如可执行文件、紧缩包什么的,就肯定无法用了。
假设你的文件就是unix下的文本文件,你用ascii方式是正确的,要是误用了binary方式,你在windows上看这个文件是没有换行的,内部是一个个的黑方块。普通来说,咱们最好都用binary方式,这样可以保证不出错。假设有文本格式转换的疑问,即unix格式的文本和dos格式的文本
Get下载、Put上传。如果是匿名用户也必须填写anonymous
JAVA请求
Java请求带有两个java请求类:JavaTest和SleepTest。
核心步骤
实例
![](https://camo.githubusercontent.com/62c7c542b99d563d312be68fcc98edc11f3c5d9d4a5603e2c6e74327892e5df0/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313431392d38353335653738352d313065642d343231312d616339652d3965613734636538323466302e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d323232266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d323232266f726967696e57696474683d3237382673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d323738)
![](https://camo.githubusercontent.com/4819c22e3f6c9f3b86ffe517aae456d09964efc60c1e7bd25e834edd00901efd/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313338382d63653063643061352d653830382d346435622d383263652d3632366666356634313739392e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333239266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d363933266f726967696e57696474683d313234312673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/56c72aa14896439a7bb8c7fda2cdf35ec3c4840339a748a144582a78f1de86ad/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313336342d35636566316536632d396164622d343231382d383236642d6564303534316465643738372e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333331266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d383632266f726967696e57696474683d313533352673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
新建java项目并引入Jmeter jar包和Junit Jar包,新建需要的包和类:
准备需要测试的代码,如新建一个文本文件并写入内容:
Junit测试代码
实现JavaSamplerClient接口:
新建Junit测试:
打jar包,并放入jmeter/lib/ext下:
在JMeter中进行测试:
JDBC请求
工作中需要对数据库进行测试,比如要看看1个sql的并发性能。
准备表:
常用步骤
JDBC连接池设置
事务的ACID:A原子性、C一致性、I隔离性、D持久性。
先理解一下:
mysql数据库:无需引入其他数据库驱动jar包,但要注意末尾别带了空格如:“com.mysql.jdbc.Driver ”。
![](https://camo.githubusercontent.com/1c8ab61956943c79efaa6ea0082a439ebbbe6ba56cd524ae2112c4f2355f2c8a/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313339322d61666337396361632d666532392d346539622d386334632d3439633436343437376466362e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d3934266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d313636266f726967696e57696474683d313034332673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/a02e03ac1fe1d430344846fdf274696b29d88f707b6abaf2a3a327867010e7ba/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313335342d34316466623636362d333038362d346435382d396565632d3961316131633139646633342e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333331266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d383634266f726967696e57696474683d313533382673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
sql server 数据库:下载sqljdbc4.jar 放到 jmeter根目录的lib目录下。
oracle数据库:将oracle数据的安装目录下面的\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar 放到jmeter根目录下的lib目录下。
数据库URL:
JDBC请求
query Type查询类别:
其他参数:
JDBC请求实例
1)为查询语句定义入参
方法一:使用用户自定义参数:
方法二:使用‘占位符’:
☞注意:如果使用Select Statement只能使用变量,不能使用‘占位符’;如果使用Update Statement只能使用变量,不能使用‘占位符’;Callable Statement可以使用‘占位符’和变量定义。
2)使用commit语句时(连接配置不能自动提交)
3)使用rollback语句(连接配置不能自动提交)
JUnit 请求
Junit介绍
![](https://camo.githubusercontent.com/c87a04c569e4f74d39a9033301fae2935a4f903ca92b299f8bb3577bee81b5b3/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313532372d33666239366132312d373866652d343730642d396339632d3665623630616634323036382e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d313137266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d313738266f726967696e57696474683d3930312673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
单元测试工具:
Junit请求
SOAP/XML-RPC接口测试
soapui工程可用在这里下载:https://git.oschina.net/giftboys/WebServiceSample.git。
通过WSDL方式取得地址等信息,如:
![](https://camo.githubusercontent.com/3a073a62486cedb0163b6bcda0fa43f8395cab714f02ad3017e07e60190bac3d/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313437352d66353639656634332d616130662d343331322d393130362d3434656532613036343639642e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d313938266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d343430266f726967696e57696474683d313331342673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/fa9eee2cbdb73bc24c8d08f9670c1ecbbc23de23ea2d5bd39f76f1ccf7e207b6/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313532322d31636664356332622d643362642d343863632d396438642d6135626434386432646638662e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d313632266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d333737266f726967696e57696474683d313336392673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/bf205b979d05c3da1f86c02abba77fd170330e7b2a8b59ff6b0bd2f02be761e8/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313438362d65666263343264642d323536352d343839302d616565372d6439396230373665643532392e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d323631266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d363131266f726967696e57696474683d313338302673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/872488d5a9906c7c483e115e8ef48e7b7bbac38e852fb2967cb5707382b47066/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313534382d62653865626332652d656235342d343464302d616130312d6337393635373565643331632e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333331266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d373638266f726967696e57696474683d313336372673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
取得请求的XML,测试同时可用向研发索取,或者通过soapui等工具取得。
参数化或变量后的请求:
察看结果树:
RestFull接口测试
通过WADL方式取得地址等信息,如:
![](https://camo.githubusercontent.com/11505ccc105ef79c658e238e81762e0bdd129fdf4f8974103c574930ae3e359f/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313438362d39646134303531632d633064642d346337302d613030372d6339633965326466383632642e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d313938266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d343430266f726967696e57696474683d313331342673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/06ab7f20fbb48139dce82bcf39bdff80c3c0991332272c679a449b55610c8aa4/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313630382d61393734316365352d626235652d346438312d616631632d3361353133623966613038632e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333231266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d373434266f726967696e57696474683d313336362673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/f754d82f760f0a6243ec03dc4f87963268af18fcbf31b29e7067b8458bc8dbdd/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313635362d61373933376661302d326432382d346131302d623030332d3330393531346236643865312e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333231266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d373434266f726967696e57696474683d313336362673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/2aa53e9c07a90164729d3b032718b6f0e5b0b3b8b85bf5b278829242dbacd286/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313536322d34313936336633372d303662632d346663662d396664372d3637653937643862313264322e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333138266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d31303333266f726967696e57696474683d313931372673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
取得请求的XML,测试同时可用向研发索取,或者通过soapui等工具取得。
参数化或变量后的请求:
察看结果树:
通过WADL方式取得地址等信息,如:
![](https://camo.githubusercontent.com/268da7ed30db74bd506cb5c5f936c2eaa85f35608b137fafa654265d0f306fc2/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313732392d37646164313831342d623364652d343534392d393033302d6464636666316230326135352e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d313938266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d343430266f726967696e57696474683d313331342673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/0ac2202df210052baaa0e5275f608382647f53ed63713c9103376732e02af35b/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313538322d33363264343431642d656464342d343831652d383665662d3165386631356131653434392e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333131266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d373230266f726967696e57696474683d313336372673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/22dfcc6af618c593ee49355bbd26eb8b9bb208207385b1671b3c51f70c96ef08/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313635332d39346134366437382d383632642d346165322d393063392d3038646465623934336566622e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d333133266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d31303130266f726967696e57696474683d313930362673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
![](https://camo.githubusercontent.com/97464d520c4f039a4e2579caf2cd9e6aae882b6bf327da2c0547afd89ede874e/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f6a7065672f31303338373231342f313631343232313031313635382d65336633343739642d623233612d343834642d626331362d3436356436356436656133612e6a70656723616c69676e3d6c65667426646973706c61793d696e6c696e65266865696768743d313339266d617267696e3d2535426f626a6563742532304f626a656374253544266f726967696e4865696768743d343839266f726967696e57696474683d323037322673697a653d30267374617475733d646f6e65267374796c653d6e6f6e652677696474683d353930)
取得请求的XML,测试同时可用向研发索取,或者通过soapui等工具取得。
参数化或变量后的请求:
察看结果树:
本文就到这里了,这个假期很充实!
转载:https://gitbook.cn/gitchat/activity/58d70a9f77508ce666dbe12a
The text was updated successfully, but these errors were encountered: