Loadrunner和Jmeter:
- Loadrunner,社区版本,一台机器最多能开50个并发。四台机器就是200个,四台机器分别手动设置LR运行参数,执行完后分别统计运行结果再汇总到一起。收费版本收费非常贵,按照不同协议,并发数来收费。
- Jmeter,开源,支持编程,但是不然Loadrunner支持的彻底。是轻量的,百八十兆,在mac下装java环境就可以做性能测试。
性能测试:
- 性能测试:在不同负载情况下,查看被测试系统的表现。
- 前端性能:app性能(GT、Emmagee)。
- 后端性能:接口和服务。
性能指标:
- TPS 和平局响应时间:并发多少?多快?正确?这三种情况下占用了多少资源。
性能测试的全流程:
- 1
性能测试的最大原则:
- 模拟最可能发生的最极端并发访问的情况。
Loadrunner工具三个部分:
- virtualuser generator:虚拟用户生成器:录制脚本、调试脚本、单线运行。
- controller:设定性能测试场景,来运行多线程(多进程)并发,执行并发测试。
- analysys:分析性能测试执行后的结果,可以出图表报告。
- 补充:ipspoofer:ip欺骗,把所有内网IP做遍历,一般内网是有几百个IP,LR跑的话一般一分钟左右就跑完了,没啥意义,所以为了测试大量IP,需要开发把限制IP关掉再做测试性能。但是这种情况就和真实情况不相符了,要综合考虑。
概念详解:
- 开始-HP Software-Start HP Web tours Server,相当于启动服务,然后打开http://127.0.0.1:1080/WebTours/index.htm 工具自带的网站,打开网页点击administration,在做关联的时候需要选择第三个Set LOGIN form's action tag to an error page.
- 关联:把动态的数据放到变量中,会在后续的测试中使用。比如登录了之后,系统返回一个token(串),访问所有后续的页面会带有这个token。录制的脚本拿到token,但是都是之前历史值,在性能测试时并不能复用,所以需要做关联。
- 参数化:避免大量的请求被缓存命中。
创建录制脚本:
- 启动virtualuser generator,File-new Script and solution-WebHttpHtml,创建在了C:\Users\太阳\Documents\VuGen\Scripts路径下的录制脚本文件。
- 脚本的结构:
- vuser_init:函数,
在一个线程中最多执行1次
一个用于数据准备等操作,在action前执行 - action:函数,在一个线程中可以执行1-多次
- vuser_end:函数在一个线程中最多执行1次
一个用于数据清理等操作
在action后执行。
- vuser_init:函数,
- 点击录制图标录制,选择浏览器、录制模式、录制网址
- 在网页中执行注册的操作,同时LR就开始自动录制了,注册结束后点击结束按钮,LR生成录制的脚本,打开action后就可以看到:对应其他收集用户信息的脚本可以删掉。以下是重点脚本解析,
- web_url("index.htm", //请求的名字
"URL=http://127.0.0.1:1080/WebTours/index.htm", //请求的网址
"Resource=0", //是否是资源,0不是资源是网页,1是资源:文件、图片、js、css
"RecContentType=text/html", //contentType,请求类型是网页类型
"Referer=", //请求这个网页的时候是从哪个网址访问来的信息
"Snapshot=t2.inf", //截图文件名字
"Mode=HTML", //录制模式HTML,还有种模式是URL,如果有ajax、flash等必须使用url。url会把所有的http请求都录下来
EXTRARES, //下面全是资源文件,"Url=http://www.duba.com/hotwords.json", "Referer=", ENDITEM,这些都是静态的资源文件,如果只想测试动态的数据,则可以把下面这行删除,如果动态和静态都想测试则不需要清空
"
- web_url("index.htm", //请求的名字