首先就JMeter工具而言,它不仅可以做压力测试,还可以做性能测试、接口测试、甚至自动化测试,功能比较强大。
压力测试是性能测试的一种,具体如下:
- 压力测试(Stress Test),也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。
- 性能测试(Performance testing)是为了检查系统的反映,运行速度等性能指标,他的前提是要求在一定负载下,如检查一个网站在100人同时在线的情况下的性能指标,每个用户是否都还可以正常的完成操作等。
所以概括的说就是:在不同负载下(负载一定)时,通过一些系统参数(如反应时间等)检查系统的运行情况。
压力测试分为两种测试场景:一种是单一接口进行压测;第二种是多个接口同时压测。压测时间,一般控制在10-15分钟。如果是疲劳测试,可以压一天或一周,具体按照实际情况确定。
第一步:编写、调试、参数化脚本。使用软件badboy或jmeter代理录制脚本,比较熟练的可以自己手写脚本。
脚本调试完成后,先用1个用户运行调试一下脚本,确保没有错误。
第二步:设置运行场景。这里就是设置线程组。
1)线程数:用于设置并发数量,也就是多少个用户同时访问
2)Rame-Up Period(in seconds):控制每隔多少秒内发动并发
3)循环次数:用于设置线程组的循环次数
4)调度器:设置压测的持续时间、延时时间
第三步:配置元件
1、线程组右键-->添加-->配置元件-->HTTP信息头管理器
2、配置信息头参数(具体参数配置哪些需参照接口文档)
3、线程组右键-->添加-->配置元件-->HTTP请求默认值
4、配置http请求默认值参数(协议、IP、端口号、内容编码等)
第四步:添加同步定时器(synchronized timer)。
右键 >>> 添加 >>> 定时器 >>> 同步定时器(Synchronized Timer)
模拟用户组的数量(Number of Simulated Users to Group by):设置多少用户进行同步操作。设置为0表示执行线程组的线程数,设置为3只会执行三个线程数(假设同步线程组数设置为5)4,5线程执行到这一步会停止
注:设置的值不能大于它所在线程组中设置的线程数;0表示 all 无穷大,最大
超时时间(Timeout in milliseconds):以第一个到达同步定时器的用户开始,如果在设置的时间内所有用户都达到了,就立即释放后续操作,如果在设置的时间内还没达到,则目前到达集合点的用户先进行释放做后续操作。 设置为0则一直等待,(以第一个到达为准,到多少走多少),如果设置为3,线程设置为永远循环,每凑够三个就会执行释放。
第五步:添加监听器。备注:断言在loadrunner叫做检查点,个人觉得运行后,在业务中查看运行结果就行,断言添加多了,脚本自己消耗资源不说,妥妥的找罪受。 运行完一堆错误,大部分是断言造成的,不建议加。
1、线程组右键-->添加-->监听器-->查看结果树
2、线程组右键-->添加-->监听器-->聚合报告
第六步:运行查看结果。
写到这里,查看结果下次再总结