性能测试工具之jmeter篇!

发表于:2019-7-30 11:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:SeaBrotherTset    来源:51Testing软件测试网原创

#
Jmeter
  1、搭建Jenkins+Maven+Jmeter自动化性能测试平台遇到的问题!?
  最近老大让搞个接口的自动化测试,我昨天使用Jenkins+ant+Jmeter已经搭建完成;后来老大又让用maven进行搭建,看了网上一些教程,看的云里雾里的!问题卡在pom.xml文件的配置;查看资料,理解的大概意思是往pom文件中引入jmeter-maven-plugin;但是自己动手配置起来总数出错,不知道哪里配置错了,还是我思路有问题,请指教!蓝色是我配置的代码!
  答:你配置的地方不对。不是在pom文件中配置,是在maven的settings文件中进行配置。
  如果要放在pom.xml文件中,这末配置,别作为插件。
   <dependency>
  <groupId>com.lazerycode.jmeter</groupId>
  <artifactId>jmeter-maven-plugin</artifactId>
  <version>2.8.0</version>
  <type>maven-plugin</type>
  </dependency>
  作为插件配置的方式是这样的:
   <project>
  [...]
  <build>
  <plugins>
  <plugin>
  <groupId>com.lazerycode.jmeter</groupId>
  <artifactId>jmeter-maven-plugin</artifactId>
  <version>1.9.0</version>
  <executions>
  <execution>
  <id>jmeter-tests</id>
  <phase>verify</phase>
  <goals>
  <goal>jmeter</goal>
  </goals>
  </execution>
  </executions>
  </plugin>
  </plugins>
  </build>
  [...]
  你那里缺少build标签
  2、JMeter作为接口测试方案大概有以下的一些问题:
  1)脚本的灵活性。虽然JMeter提供了一定的BeanShell编程能力和自定义协议的扩展能力,可以让脚本开发人员有一定的灵活性,受制于JMeter本身的限制,与开发人员直接使用语言进行接口测试相比,灵活性还是相对不足。
  2)报告的能力。JMeter提供了HTML报告,但是JMeter本身的测试报告主要用于性能测试,反映的更多是性能测试层面的结果。而且配置过程比较复杂,在团队成员分享报告等方面比较麻烦。
  3)持续集成。利用第三方的Jenkins插件、Ant和Maven等,能与JMeter进行一些基本的持续测试集成,但是对于完全自动化所需的测试环境的管理等功能支持不足,配置过程略嫌麻烦。
  4)测试脚本和测试结果的管理:脚本和结果基本都是本地管理,无法做到在线管理。
  请问嘉宾我这些理解你觉得对吗?
  答:
  您的见解很好。但是任何方案都有其利弊,实话实说:单纯拿性能测试来讲,jmeter肯定不如lr。拿他来自动化、持续集成等又略显鸡肋。但是学习一门工具本身不是重要的,重要的是你学习工具的过程中对方案、理论的感悟。
  3、用JMeter做并发测试的时候发现,网速会影响测试结果,测试的次数(比如说前后两次)的测试结果也不一样,这种情况怎么解决?
  答:首先先要明确:进行性能测试压测的时候,首先准备环境的时候,就应该确保网络不制约性能测试,所以一般会协调机房的服务机进行压测。如果确实无法解决网络瓶颈的话,建议多压测几次,最终将平均结果作为压测结果。但是这种结果肯定也是有误差的。
  4、我用JMeter做一个1500的并发测试,主要针对web端里的某个模块,具体怎么去操作呢?
  答:有两种解决方案:一种是直接到Web界面所在的模块开始录制,这个用Baby就能实现;做好动态关联;一种是覆写JMeter的源码,直接压测模块实现的程序。
  5、如何实现百万级并发测试?
  答:百万级,我不建议用JMeter哈,还是用LR,JMeter它的应用也不是只在性能测试方面,在自动化、接口、继续集成方面的效果更佳。得益于其强大的插件扩展与源码。
  6、之前了解到通过ant触发执行和解析jtl文件的操作,但是生成的内容没有在jmeter中显示的丰富(比如折线图等),在ant的build文件中,还需要利用xslt文件去定制,生成一个测试数据也是比较麻烦;如果是想定制曲线绘制的工作就更加麻烦了,请问下大佬有没有好的建议?
  答:可以去生成html的多维度报告。具体方法:下载jmeter的3.3版本
  在jtl脚本所在的位置执行如下命令
  (1)cd到jmeter/bin目录下,执行如下命令:
  jmeter -n -t if.jmx -l result.jtl -e -o /Jmeter/apache-jmeter-3.3/resultLog
  (2)命令参数解析:
  -n :以非GUI形式运行Jmeter脚本
  -t :.jmx 脚本所在的路径
  -l :result.jtl 运行结果保存路径(.jtl),此文件必须不存在,如果存在,则执行
  jmeter -g result.jtl -o /Jmeter/apache-jmeter-3.3/resultLog命令;
  -g : result.jtl 已经存在的.jtl文件的路径。
  -e :在脚本运行结束后生成其对应的html报告;
  -o :用于存放html报告的路径;
  7、如何使用JMeter对WEB系统进行20万的并发测试?
  答:20万的并发测试,你要分解下在进行。
  1)目标系统当前的情况,20W并发的WEB系统不可能只有一套服务,肯定是N套构成,了解下网络拓扑
  2)先针对其中一套系统进行并发测试,测试极限
  3)压测机单台测试这一套系统,看看极限情况,瓶颈在哪一方
  4)压测试多台-分布式方法,压测这一套系统
  5)最终你会得出这其中一套系统的并发度,然后可以压测2系统,看是不是线性?
  这样做,你就不用一上来考虑30W并发压测机如何做,也能评估出系统的性能
  8、怎么用JMeter去测试一个电商APP的下单流程?
  答:
  1)用Jmeter可以进行http、https的接口测试,需要了解项目接口用到的是什么协议、端口、链接、参数等
  2)对项目流程需要熟悉,比如,先发起一个加入购物车的请求,才能进行下一步的预支付请求,预支付操作了以后,订单状态转变了,才能进行下一步的支付
  3)之后就是Jmeter的实际操作了,需要用到Jmeter的正则表达式,在下单的时候,服务器会返回订单id,将订单id提取出来,支付的时候一定会用到订单id这个参数,放到支付链接的参数中进行请求即可
  9、使用JMeter对API进行接口性能测试和具体调优思路?
  答:测试登录并发的话,可以分几步:
  1、找到项目的登录API,用Jmeter参数化登录数据。添加登录成功的断言验证,确保请求是真实有效的登录请求
  2、给数据库插入需要登录的性能测试帐号,在把这些登录的账号导出并调通JMETER的数据调用
  3、用真实的环境(与生产环境配置一致)来测试,一点一点把数据的并发量提上来。当然测试时,还要把JMETER的一些报告打开,便于随时观察测试数据结果的变化

     版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号