一、Badboy录制脚本报错
1、在使用Badboy录制Jmeter脚本时,可能会遇到一些报错。首先,需要检查是否已经安装好Jmeter,是否将其路径添加到了Badboy配置中。
2、如果确认以上问题均已解决,但依然遇到报错,则需要检查Jmeter版本和Badboy版本是否匹配。如果版本不一致,会导致无法录制或者录制后无法进行测试。
3、还可能是Badboy没有录制到需要测试的完整流程,因此建议使用录制开启前先规划好测试流程。
二、Jmeter录制脚本
1、在Badboy中完成对测试流程的录制后,可以直接导出为Jmeter脚本。
<jmeterTestPlan version="1.2" properties="2.4">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="name" elementType="string"></elementProp>
<elementProp name="value" elementType="string"></elementProp>
<elementProp name="metadata" elementType="bool">false</elementProp>
</collectionProp>
</elementProp>
</TestPlan>
<hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="Argument.value" elementType="string"></elementProp>
<elementProp name="Argument.metadata" elementType="bool">false</elementProp>
</collectionProp>
</elementProp>
<elementProp name="HTTPSampler.image_parser" elementType="bool">true</elementProp>
<elementProp name="HTTPSampler.concurrentPoolSize" elementType="int">6</elementProp>
</HTTPSamplerProxy>
<hashTree>
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="false">
<elementProp name="HeaderManager.headers" elementType="CollectionProperty">
<collectionProp name="HeaderManager.headers">
<elementProp name="" elementType="Header">
<stringProp name="Header.name">Connection</stringProp>
<stringProp name="Header.value">keep-alive</stringProp>
</elementProp>
</collectionProp>
</elementProp>
</HeaderManager>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
</hashTree>
</jmeterTestPlan>
2、导出后打开Jmeter,可以看到录制好的脚本已经自动生成,其中包括线程组、请求方法等信息。在脚本中还可以添加断言、加入循环等操作。
三、Badboy可以录制app脚本吗?
1、Badboy不仅可以录制Jmeter脚本,也可以录制app脚本。
2、在录制app脚本时,需要连接真机或者模拟器,并且在Badboy中配置好相应的手机参数。之后在Badboy中打开app,即可进行录制操作。
3、录制完成后,也可以导出为Jmeter脚本,并将其用于Jmeter的性能测试中。
四、Jmeter脚本优化
1、在录制好的Jmeter脚本中,可能会存在一些冗余的请求,需要进行优化。
2、可以筛选掉不必要的请求,如图片等静态资源文件,可以采用正则表达式进行匹配。
例:在HTTP Request中,添加取样器结果树。然后在正则表达式过滤器中填写如下表达式: .*\.(jpg|gif|png|css|js|ico)
3、也可以对接口进行分类,将相关的请求放在一起,方便后续的性能测试操作。
五、结合CI/CD使用
1、Jmeter的性能测试通常要和CI/CD进行结合使用。
2、可以在代码的仓库中,添加一个Jmeter的文件夹,并把Jmeter的脚本放进去。之后在CI/CD的流程中加入Jmeter的性能测试,可以在持续集成或者持续交付的过程中对性能进行监控。
3、可以将测试结果作为指标分析,并根据结果对应用进行优化,提高应用的性能。
六、结语
以上是关于Badboy录制Jmeter脚本的详细阐述,包括了录制时可能遇到的问题、导出Jmeter脚本、优化脚本、结合CI/CD等方面。希望这篇文章有助于您掌握Badboy录制Jmeter脚本的技巧。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/194001.html
微信扫一扫
支付宝扫一扫