一次压力测试

最近经历了一次较长时间的压力测试,有一些记忆,趁着没忘记,还是记下来

压力测试客户端: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

posted on 2016-12-19 22:05  qooweds  阅读(167)  评论(0编辑  收藏  举报

导航