1.为什么需要在服务器内部执行压测
有些接口实际上是在内网进行调用,并不需要暴露在外网,所以如果在外网进行压测,实际上作用并不大,会受宽带限制。
2.在内网压测有两种方式。
分布式,将内网服务器当成一个执行机。
直接在内网执行jmeter脚本。
以分布式的方式执行,有好处就是,修改脚本时比较便捷。
但是不方便的地方在于,需要服务器开放指定端口,这其实造成很多麻烦,现在云服务器基本只保留几个必须的对外端口,而即使你有开放对应端口的权限,在安全方面也是最好尽量避免。
而直接在内网执行jmeter脚本,虽然不是很方便,每次修改接口参数、压测线程参数都需要再次同步脚本文件过去。
但是优点在于,首先能够保证不受任何外部因素影响,其次是没有安全问题。
下面是执行的步骤,以及常见问题。
1.脚本保存,将写好的测试计划保存为jmx脚本文件。
2.将执行脚本上传服务器。
3.在服务器内执行命令,开始压测。
./jmeter -n -t ./test.jmx -l /root/report.jtl
4.将压测结果文件导出,在windows上jmeter可视化查看。
常见问题:
1.在服务器执行时,服务器也需要安装java环境,看jmeter需要的版本。
2.压测时,可以选择输出可视化报告,是存储了html页面的文件夹。
./jmeter -n -t ./test.jmx -l /root/report.jtl -e -o /root/report
3.如果需要压测的结果树,查看对应每个请求的响应,需要在配置文件上修改,但是这样导出的结果会很占内存。
1.修改jmeter/bin目录下的user.properties
新增下面命令
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.responseHeaders=true