上周刚刚做完项目的性能测试。今天整理和总结一下,随便分享给大家。

首页呢,测试前,我们是有明确的性能指标的,而且测试环境和数据都已准备好,业务分析、场景分析大家根据自己的项目系统进行分析设计,我们选用的都是实际用户操作频繁、重要级别高的。还有一个好说明下,今天分享的是Jmeter做APP端的单接口性能测试。下面开始分享吧。

先贴一张我的脚本:

第一步,环境是运维搭建好,那我们只需要准备脚本和脚本数据。从上面的图中可以看出,我们需要准备:

1、需要开发帮忙去掉系统中的手机验证码、token的校验,因为我们是单接口,因此是绕过登录的,token校验呢去掉,用户ID的校验还是要保留的。

2、脚本数据:我用的是CSV,每个接口的请求数据,比如关键字查询,我们的业务是用户登录成功后,在首页可以进行关键字查询。那么我在我的CSV文件中准备了200个账号的用户ID和对应的关键字,根据你的性能指标去准备需要用多少个账号,当然,你也可以就用一个账号,不过还是没有前者实际。

3、编写接口脚本,除了去掉token校验和验证码校验,我们还需要自己在脚本中处理参数和参数的加密以及时间戳等,我用的是JSR223 中的JS,引用了一个外部js文件做加密处理。当然如果开发愿意,也可以协商去掉密码。脚本编写好了,要在测试环境进行测试,看是否能跑通。

4、添加一个定时器,用来确保按照需求进行正确的并发。

5、添加Jmeter插件,监控压力机与服务器的硬件性能情况。比如CPU、内存、网络、磁盘读写。

以上步骤全部搞定,那么性能测试工作就差不多准备完了。

第二步,开始执行。这个步骤很关键也很深。很多人对Jmeter做性能测试,认为只是简单的设置线程数就OK了。其实不然。

1、保证我们的脚本执行正确、发送正确的参数,得到正确的响应。那我是添加了结果响应断言,来确保结果的正确性,还有一些注意的,比如:

2、确保正确并发。单纯的设置线程数量和Ramp-up是达不到真正的并发的,可以通过结果观察树,查看每个请求的开始时间是否一样。这里呢,我是通过定时器来做的,如下:

 

线程数设置10,ramp-up设置5,循环1次。定时器中的组合设置10,超时设置10秒。意思就是:

5秒内启动10个线程,等全部启动完,也就是说10个线程准备好了,再一起发送,这样的操作执行1次。

线程数,不多做解释了,大家都明白。

Ramp-up:这个呢,字面意思也是很好理解的,就是在设置的时间内启动设置的线程数,启动完一个发送一个。那么会出现些什么情况呢?

a、设置的时间过短,不能在设置的时间内启动全部线程 (这也会为什么定时器的超时哪里要设置比Ramp-up的值大或等于的原因)

b、压力机不同,在相同的时间内,能启动的线程数量不同。这个就要看配置了。

一般我是先设置3秒或者5秒来测试自己的压力机合适设置多少。

定时器超时时间:如果Ramp-up设置的时间内,没有全部启动线程,就会处于等待状态,等待的时间就是这个超时时间。

所以,在做并发测试的时候,一定要注意,每个请求的开始时间是否一致

3、分布式,大家都知道,单台压力机可能不够,那么需要用到多台压力机,这就是Jmeter分布式的运用。具体用法百度很多,需要注意以下几点:

a、每个压力机上都需要放脚本,而且路径一致

b、使用了CSV文件的,也需要保存每个压力机上的CSV文件一致,脚本修改都要同步更新,保持一致

c、每个压力机上的本地时间要保存一致,最好是同步Intelnet上的时间。不然并发也达不到真正的并发。

4、注意压力机自身的压力瓶颈。测试的过程中,要时刻观察压力机的情况。有时候线程数较多,一起并发,会瞬间对压力机产生很多压力。

5、观察服务器的性能变化。

6、建议在执行的过程中,要逐步加压,找到RT与TPS的交叉点(即TPS由上升到下降的那个点)

7、最后还要建议,测试的时候,最好选用压力机的配置不要太差,还有网络。

好了,测试完成,大家要开始写报告了,把你的测试过程、测试结果、以及你的分析写出来吧。

其实这也是我第二次真正意义上的做性能测试,自己也是一边学习一边摸索,其实我觉得性能测试是分成两个部分的,一个部分是测试执行,一个部分是问题分析,今天给大家分享的是测试执行,至于问题分析,可是很深的一门学问,需要慢慢累积,不过大家只要先保证,测试方案得到评审,测试也是正确的执行,这个过程中,其实你就会发现很多问题和学习到很多东西,最后把这些报告,然后协助开发一起分析问题,弄懂问题的原因,我想我们就会越来越能干了。欢迎大家来讨论。

使用Jmeter做性能测试相关推荐

  1. JMeter做性能测试之前,你应该要知道的套路?

    文章目录 一.性能测试释义<来自百度> 二.性能测试,需要做什么 第一:性能需求分析 第二:性能测试脚本开发 第三:如何优化测试脚本 第四:设计执行场景及资源监控 第五:性能测试结果分析与 ...

  2. badboy + jmeter并发性能测试

    今天下班时公司安排了一个同事来对项目做集群性能测试,怀着对性能测试的好奇心,下班后没有着急离开,而是等待 那位同事的到来,然后在旁边学习了下如何使用Badboy和jmeter做性能测试. 1. 软件介 ...

  3. 一个使用Jmeter做接口性能测试的实战案例

    1 安装并配置Jmeter Jmeter的安装不在这里阐述,安装步骤非常简单. 直接进入主题 1.1 数据库连接配置 由于测试过程需要调用数据库获取响应部署数据,因此需要先建立与数据库的连接. 如果不 ...

  4. 帮你排雷Jmeter分布式性能测试那些坑

    JMETER 在做后端服务器性能测试中,我们会经常听到'分布式'.哪你,是否了解分布式呢?今天,我们就来给大家讲讲,在企业实战中,如何使用分布式进行性能测试,实战过程中,又有哪些地方要特别注意? 为什 ...

  5. 看阿里高手使用Jmeter做功能测试的优缺点

    利用Jmeter做功能测试有以下优点:   ● 不依赖于界面,如果服务正常启动,传递参数明确就可以添加测试用例,执行测试   ● 测试脚本不需要编程,熟悉http请求,熟悉业务流程,就可以根据页面中i ...

  6. jmeter性能测试报告_用 JMeter 做接口测试的优劣浅析

      2018年由软件质量报道做的调查报告表明,受调查的测试人员中约有40.67%的人使用JMeter作为接口测试的自动化测试工具(排在商业化或者开源工具中的第一),剩下的为Postman(28%),以 ...

  7. 轻松做性能测试,月入3万的主流测试工具大揭秘

    在为大家介绍性能测试工具以前,先让我们一起回顾一下什么是性能测试. 1.为什么需要性能测试? 举个例子.下图是一张交通图.图中的车流类似于性能测试中的数据,图中的车道.十字路口就相当于数据流量的规则和 ...

  8. jmeter压力性能测试-多台机器并发请求

    工作需要开始研究前置服务的压力性能测试,最后选定用jemeter工具,先用本机跑一万个用户,电脑直接蓝屏,通过研究发现当需要模拟数多达上万的并发用户时,使用单台电脑(CPU和内存)可能无法支持,会将程 ...

  9. 帮你排雷Jmeter分布式性能测试那些坑~轻轻松松去实战

    JMETER 在做后端服务器性能测试中,我们会经常听到'分布式'.哪你,是否了解分布式呢?今天,我们就来给大家讲讲,在企业实战中,如何使用分布式进行性能测试,实战过程中,又有哪些地方要特别注意? 01 ...

最新文章

  1. failed due to the following error: 80070005 错误解决方案
  2. 【pmcaff】O2O的背后价值:数据将成为O2O真正核心
  3. MVC与三层架构的联系及三层架构实现学生注册功能
  4. java 文件下载方法_【工具类】Java后台上传下载文件的几种方式
  5. 【python教程入门学习】必须具备Python Django开发技能
  6. html(+css)/01/html语言基础,标记,标记语法,html文档结构
  7. 工信部:手机预装软件下月起须报备审核
  8. 温度湿度传感器流程图_为什么温湿度传感器用一段时间就会漂移?
  9. 《强化学习》中的第11章:基于函数逼近的离轨策略方法
  10. Kubernetes 小白学习笔记(16)--集群网络-pod网络、service网络
  11. 《C++ Primer 第5版》-12.2动态数组-康奈尔笔记
  12. 量子纠缠计算机里的灵魂意识,量子纠缠理论告诉我们,灵魂真的存在于你我身体?...
  13. 第 16 章 下载数据
  14. 自制简单CUP第一篇(异或门)
  15. linux断电并重启命令,Linux系统关机重启相关命令
  16. 渭师院的计算机专业学什么课程,【三名+建设工作】渭南初级中学教师郭晓辉走进渭师院给大学生上课...
  17. qq邮件如何设置html阅读,如何得知对方是否已阅读QQ邮件?
  18. 引起C运行时错误R6034的原因和解决方法
  19. Android---TabLayout
  20. 动态规划(Dynamic Programming)的一些事一些情

热门文章

  1. 《锋利的jQuery》学习总结
  2. linux命令ls查看内存,Linux ls 命令详解
  3. 2012总结之pcode.DefineClass
  4. #762 (Div. 3) E. MEX and Increments(贪心构造
  5. python输入单个字符_关于输入:Python从用户读取单个字符
  6. vivado使用方法(初级)
  7. 关于微信开发的语音存储问题
  8. python性能差_Python 性能分析大全
  9. JAVA已知圆心经纬度和半径求圆周点的经纬度
  10. 【Jsoup】 基本使用