blog.csdn.net/qqgirllianxin/article/details/26979723
参数化目的:模拟真实用户操作和创建现实的结果。如果每次输入相同的查询内容,服务器会有相应的缓存,查询速度就会很快,与实际用户使用场景不一致。
(一)参数化步骤:
1. 确定需要参数化的数据(a.业务系统要求某些数据唯一 b.某些数据不改变,会对性能产生影响)
2. 选择数据,鼠标右键选择“Replace with a parameter”
3. Param List中设置参数值和参数更新方式
(Select next row: Sequential 顺序取值、Random随机取值、Same lineas Param1 与参数1取的行数相同)
(Update Value on 参数值的变更条件:Each Iteration一次迭代中间无论调用几次都取同一个值、Each Occurrence每调用一次参数就变更一次 Once 只取一次)
4. 在 Run-Time Settings 中 修改迭代次数和打开日志(Run-Time Settings-> Log -> Extended Log-> Parameter substitution)
参数的调试:
在VuGen验证参数是否正确
使用lr_eval_string()读取参数
通过日志检查参数取值
Controller中多用户并发情况下,参数是否正确
(二)创建场景Create Scenario
1. 在Design Tab页下 双击 Start Vusers 、Duration、去设置场景参数
2. 运行场景
3.在Run Tab页下点击Vusers...->Show Vuser Log 查看各个用户的取值情况
变量及参数的使用技巧:
关联目的:捕获动态数据,进行动态提交
(三)关联
手工关联
确定要捕获的数据(可以通过回放脚本后 使用 Scan Script for Correlations 辅助关联)
发现要捕获的数据的文本左右边界
脚本添加函数(web_reg_save_param)
验证正确的执行
特点:关联的数据是从服务器返回的,后续请求中发回给服务器,该数据是动态变化的
手动关联的具体步骤:
1. 脚本出错时需要关联
2. 过滤可疑数据(在Generation Log中找该数据,看该数据是否是服务器返回的数据)
3. 重点关心post请求
(四)事务、检查点
引入事务是为了度量响应时间
事务时间: 函数自身+ Think time + Wasted Time + 响应时间
响应时间:网络(网络延迟+ Web Page BreadDown) + 服务器处理(WWW Server+ App Server + DB Server)
对于自动结束状态的事务(LR_AUTO),只要服务器给用户返回了信息,就会认为事务是通过的。因此需要手工事务来进行判断
可以用web_reg_find()函数来对登陆失败或成功后页面进行文字的查找,对事务进行判断
事务相关函数:
lr_start_transaction
lr_end_transaction
lr_start_time() 与lr_end_time()联合使用得到程序运行时间
(五)集合点:用于模拟多用户并发操作的一种技术手段
步骤:
1. 确定并发操作步骤
2. 在并发操作之前,插入集合点
3. 修改集合策略(场景 Scenario-> Rendezvous -> Policy)
集合点不能放在事务的中间
(六)思考时间 lr_think_time(10);