最近经历了一次较长时间的压力测试,有一些记忆,趁着没忘记,还是记下来
压力测试客户端:Loadrunner
压力测试服务器端:Linux/Ubuntu server
以下按LR的三个组件来记录一下本次测试的过程
1.脚本部分
脚本部分是最复杂也是比较费时间的,虽然最终脚本行数不多,但是LR毕竟不是IDE,调试还是比较费时间的
以下是用到的函数:
web_set_max_html_param_len()
被存储于参数中的关联内容字节大小是否小于等于256,如果大于,则需要设置web_set_max_html_param_len函数
不设置可能出现错误Error-26377
int web_reg_save_param(const char *ParamName, <list of Attributes>, LAST);
ParamName: 存放得到的动态内容的参数名称
list of Attributes: 其它属性,包括:Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, SaveLen。属性值不分大小写
即将搜索到的内容导入第一个字符指针(字符串)中
web_reg_save_param("des_str", "LB=left_str", "RB=right_str","Search=Body",LAST);
web_custom_request 构造HTTP请求用函数,参考: web_custom_request("web_custom_request", "URL=http://www.baidu.com", "Method=GET", "TargetFrame=", "Resource=0", "Referer=", "Mode=HTTP", "Body=123", LAST);
web_get_int_property(HTTP_INFO_RETURN_CODE);
获取上个执行HTTP请求的返回码
lr_end_transaction("transaction_name", LR_PASS); 用来判断事务通过或者失败,通常与if语句配合使用
2.执行测试部分
这部分比较零散
客户端:
1.有时会出现通道错误(socket),在controller中 诊断->配置 关闭勾选即可
2.运行时设置需要注意的:
1.关闭日志,可能会导致磁盘写满
2.如果曲线中自动出现开始事件和结束时间,将”自动事务“中的两个选项勾选并取消勾选即可
3.首选项用socket可能较快,不行再用wininet回放。后者是LR自己的通信方式
3.如果需要加载Unix资源的曲线,需要安装unix监控,以下是两个相关的命令
rpcinfo -p
rpc.rstatd
无法执行相关命令按照提示安装相关程序即可
服务器端:
无非是一些命令来监控Linux服务器的运行情况
top中Load average,cpu的id,以及进程的cpu和内存占用情况等等
一般看负载和cpu,如果需要看内存,需要看物理内存和swap,因为Linux有时候物理内存用完了是不释放的(为了后续使用比较方便),所以会出现内存未满,但仍然使用了较多swap的情况
另外需要关注一下流量和磁盘io即可
iftop 查看网络流量 vmstat 相当于top的简化版 可以用 vmstat 1 100 来执行100次,每秒一次
3.报表
项目中使用的并非LR的第三个大组件直接生成doc等等,而是只生成报表,记录一下数据即可
1.报表中可以修改事务分析的百分比(90%还是95%)
2.可以按1秒,10秒,还是60秒的粒度来显示曲线(LR是采集了所有的数据的,显示的默认曲线只是展示给你看而已,可以根据需要显示不同粒度的曲线)
3.每秒请求数:即发出的请求
4.每秒响应数:即受到的响应
暂时记录这么多,如有后续有需要的再补充
补充1:
如果需要录制HTTPS请求,可以参考http://blog.csdn.net/hualusiyu/article/details/22470291