• 0
  • 0
分享
  • 利用Jmeter完成简单的接口性能测试——软件测试圈
  • 曼倩诙谐 2022-07-12 10:33:42 字数 1744 阅读 2112 收藏 0

  一.性能测试指标

  在用jmeter做性能测试之前,首先要回顾下性能测试的关键指标

  1.系统吞吐量throughput

  单位时间内系统的请求数目

  在没有达到性能瓶颈时吞吐量和虚拟用户间存在一定的联系

  F=VU*R/T——VU:虚拟用户数,R:每个用户发出的请求数,T:考察的时间

  2.响应时间(系统延迟)

  通常一个系统的性能受吞吐量和响应时间两个条件的约束,有以下两种场景

  吞吐量越大,系统延迟越大,因为请求量过大,系统繁忙,响应速度降低

  系统延迟越好,能支持的吞吐量就越高,因为响应速度快,因此能处理更多的请求

  3.并发数

  系统能够同时处理的请求数/事务数

  4.QPS(TPS)

  并发数/响应时间假定系统响应时间一致的情况下,并发数越大,QPS也越高;当并发数超过一定值(系统瓶颈)时,响应时间变慢,QPS降低

  依赖于公司的监控系统,做接口压力测试时主要关注点在qps,响应时间以及准确率,并发数是要靠算的

  二.jmeter接口测试

  创建测试计划,添加线程组,在线程组里面添加HTTP请求,设置http请求详情(包括服务器IP和端口号,协议,方法,编码,请求方法,方法中的参数等),为http请求添加请求头,为了查看jmeter的运行结果,需要添加监听器(常用的有“查看结果树”和“聚合报告”)

  如何使用csv文件实现参数化:添加配置元件CSVDataSetConfig

  以下介绍一些配置项的概念

  线程组管理:设置线程数,设置ramp_upperiod,设置执行测试的次数

  线程组元件控制Jmeter运行测试时使用的线程数,每个线程会作为一个整体执行测试计划并完全独立于其他测试线程,多线程用来模拟到达服务器的同步连接;Ramp-upperiod告诉JMeter多久开始"ramp-up"选择的全部线程。如果使用10个线程,ramp-upperiod是100秒,那么JMeter用100秒使所有10个线程启动并运行。每个线程会在上一个线程启动后10秒(100/10)启动。如果有30个线程和一个120秒的ramp-upperiod,那么每个连续的线程会延迟4秒;修改jmeter的线程数会加快数据的生成速度。

  你的硬件能力会限制你有效运行JMeter的线程数。它也会依赖于你服务器的速度(一个更快的服务器因为它更加快速的返回一个请求所以会使JMeter工作更加努力)。JMeter工作越多,它的时间信息就越不准确。JMeter做越多的动作,每个线程必须等待访问CPU的时间越长,定时信息越长。如果你需要大规模的负载测试,考虑在多个机器上运行多个非用户界面的JMeter。

  这里需要明确并发的概念,曾经看到小伙伴在单机笔记本上发起了600个线程,这种情况下设置线程数过多资源不足负载机排队,另外请求数据在网络队列上也有排队,到达服务端也会排队,严格意义上的并发很难指定,如果不能达到性能测试的瓶颈,可以考虑增加机器

  减少资源使用的一些建议:使用非用户界面模式:jmeter-n-ttest.jmx-ltest.jtl?尽可能少的使用监听器;如果使用-l标志??不要使用函数模式?使用CSV输出而不是XML?仅保存你需要的数据?尽可能少的使用断言

  三.压力模拟工具

  若为Java类接口且单机并发数控制在500内,则可选择Jmeter或者Loadrunner。

  若为WebService类接口且单机并发数控制在500内,则可选择SoapUI或者Loadrunner。

  若单机并发数超过500且控制在5000内,则可选择Loadrunner。

  若单机并发数超过5000,则建议采用负载集群,即采用“中控(ControlCenter)+多机部署(LoadGenerator)”方案。

  四.测试场景

  1.系统达到**qps时的响应时间;

  2.单个机器可以达到的qps;总的请求数不变,逐渐增加线程数(线程数越大,数据的生成速度越快,总的请求数不变,当qps不随线程数的增大而改变时,可以认为得到了结果值)



作者:for_choc    

来源:http://www.51testing.com/html/26/n-4421826.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   近年来,随着国际形势和网络空间环境日趋复杂,各方面对网络安全重视程度日益提升,网络安全也已纳入了国家战略。在此背景下,系统的安全测试与防护就显得越来越重要,项目组在进行基于owasp zap工具进行安全扫描过程中,对工具的使用及扫描流程进行了深入分析,对常规扫描方式进行了优化。  zap提供了强大的路径爬虫及漏洞扫描功能,常规方式下,可以通过配置代理来录制前台页面,点击系统页面功能后抓取网站路径,再通过“爬行”、“强制浏览目录”等功能进行路径的分析与扩展,最后通过“主动扫描”功能进行漏洞扫描,生成漏扫报告。但这种方式抓取到的网站路径并不能保证是系统的全量路径,也就可能会导致扫描结果不详尽。...
            15 15 994
            分享
          • 读者提问:在线二维码生成器有推荐的吗 ?阿常回答:有,草料二维码。官网地址:https://cli.im 阿常碎碎念:平时给小伙伴分享文件、图片、文章、音视频,用草料二维码很方便,推荐大家使用。看完今天的分享对你是不是有所启发呢,有任何想法都欢迎大家后台私信阿常,一起探讨交流。
            0 0 1003
            分享
          •   想做程序员,想学软件测试,是自学还是培训好?学习的关键是什么呢?  大家纠结的点在于,我是应该去参加培训班还是选择自学,我自身的话没有参加过培训班,所以我觉得没有什么发言权来给大家什么建议。不过我后来去咨询了几个朋友,有一个是在培训机构当老师,还有两个曾经也接受过培训。我根据他们说的,还有结合我自己的一些想法来给大家做个分享。当然如果你有什么补充的,可以在评论区留言!  关于自学还是选择培训有几点——  第一:  你是零基础的小白,自学约等于浪费时间。这个公式在多数情况下都成立,当然,如果你有自信的话可以去试一下。  第二:  如果你有一到两年的开发/测试的经验,想在技术上有所提升,那这个...
            0 0 977
            分享
          •   随着各企业的业务发展、用户量以及数据量的不断增加,系统承载的压力也会随之增加,服务系统的性能好坏又严重影响企业的利益。因此,性能测试重要性与需求越来越强烈。  常见的性能测试目的  性能测试是确定系统在特定工作负载下的稳定性和响应能力。在进行性能测试之前,首先是要明确性能测试的目的,目的不同,对应的解决方案会有很大差异,最常见的性能测试目的(或契机)有三种:  · 评测当前系统性能  通过性能测试了解系统当前的性能是否达到预期。例如:新系统上线前、技术升级后,都会进行性能测试,确保系统在线上稳定可靠地运行。  · 寻找瓶颈,优化性能  系统已知有性能问题,进行测试寻找瓶颈,以便优化其性能。...
            0 0 1148
            分享
          • 读者提问:免费好用的在线身份证号码生成工具,有推荐的吗 ?阿常回答:有,这 3 款在线身份证号码生成工具,推荐使用 !1、随机身份证号码生成包含功能:设置出生地、出生日期、性别、生成个数。官网地址:http://sfz.uzuzuz.com2、随机身份证号码生成包含功能:设置出生地、出生日期、性别、生成个数。官网地址:http://www.chineseidcard.com3、在线身份证号码生成器包含功能:设置生成个数(无需设置出生地、出生日期、性别,直接生成身份证号码)。官网地址:https://www.suijidaquan.com/shenfenzheng阿常碎碎念:平时的测试...
            0 0 36292
            分享
      • 51testing软件测试圈微信