标签:登录 其他 retcode gic 相同 日志 mdr 任务管理 通过
通过事务可以查看服务器的响应时间以及事务通过/失败率
1.1 事物的作用
测试人员可以将一个或多个操作步骤定义为一个事务,
可以通俗的理解事务为"人为定义的一系列请求(请求可以是一个或者多个)"。
在程序上,事务表现为被开始标记和结束标记圈定的一段代码区块。
Loadrunner根据事务的开头和结尾标记,计算事务响应时间、成功/失败的事务数。
1.2 响应时间
组成:浏览器---服务器整个处理过程
解释
1.网络时间
客户端发出请求首先通过网络来到Web Server上(消耗时间为N1);然后Web Server将处理后的请求发送给App Server(消耗时间为N2);App Server将操作数据指令发送给Database (消耗时
间为N3);Database服务器将查询结果数据发送回App Server(消耗时间为N4);App Server将处理后的页面发给Web Server(消耗时间为N5);最后Web Server将HTML转发到客户端(消耗
时间为N6)。 这里的Nx都是网络传输上的时间开销,没有计算业务处理所需要花费的时间。
2.服务器处理时间
各个服务器处理所需要的时间WT、AT、DT。
响应时间 = WT+AT+DT +(N1+N2+N3)+(N4+N5+N6) 也可以简单认为响应时间由网络开销(前端)和服务器开销(后端)两大部分组成,
1.3 添加事务
开始事物
结束事务
1.4 事务时间
1.5 判断事务结果
1.自动判断:此处判断的是状态码
2.手工判断:
1)通过状态码判断
//获取服务器http协议返回码函数
HttpRetCode = web_get_int_property(HTTP_INFO_RETURN_CODE);
//判断返回码是否
if (HttpRetCode == 200)
//lr_output_message("The script successfully accessed the discuz home page--- ----- -------------- -----------------");
lr_end_transaction("open", LR_PASS);
else
//输出信息到日志的函数
//lr_output_message("The script failed to access the discuz home page-------- ----- -------------- ----------------- ");
lr_end_transaction("open", LR_FAIL);
2)通过检查点判断
if(atoi(lr_eval_string("{num}"))>0)
lr_end_transaction("login", LR_PASS);
else
lr_end_transaction("login", LR_FAIL);
1.6 函数
lr_start_transaction("事务名")
lr_end_transaction("事务名",事务状态)
注意: 正常情况下,事务内只存放目标请求,其他的检查点,关联,思考时间 等函数一般放在事务函数的外面
练习:iwebshop登录并检查验证
2.1 作用:检查请求触发的业务有没有真正成功
2.2 函数
1)文本检查
web_find与web_reg_find区别
普通检查点函数
web_find()
注册型检查点函数
web_reg_find()
"Text=Welcome, <b>jojo</b>", 查找的字符串
"Search=Body", 查找范围
"SaveCount=num", 查找到的次数保存的参数名
LAST);
2)图片检查
web_image_check()
通过Alt属性
通过Src属性
lr_think_time():忽略、按脚本中时间执行、脚本中时间的倍数、脚本中时间的百分比
3.1作用:更加真实模拟用户发出请求之间的延迟,也就是用户暂停发请求的时间
3.2设置策略
3.3函数
lr_think_time(秒数)
注意:
1.实际情况下,获取真实场景的系统的性能指标时一般加入思考时间(1-2S) 如果是做压力测试获取系统的峰值指标时,一般忽略思考时间
2.一般情况下,思考时间函数不要放入事务内,以免后期影响计算事务响应时间
集合点:模拟多用户同时操作
单功能脚本:没必要加集合点
多功能脚本:可以加集合点
4.1作用:
设集合点是为了更好模拟并发操作。设了集合点后, 运行过程中多个用户可以在集合点等待到一定条件后再一起发后续的请求。
4.2设置策略
三种策略:
1.所有用户达到指定的百分比以后,释放用户
2.运行中的用户达到指定的百分比以后,释放用户
3.指定达到一定用户量以后进行释放
Controller---scenario--Rendezvous--policy
1.当%x的全部用户到达集合点时,开始释放
2.当%x的正在运行的用户到达集合点时,开始释放
3.当x个的用户到达集合点时,开始释放
限制虚拟用户之间的超时时间为xxS
图示1
图示2
4.3函数
lr_rendezvous("集合点");
最终脚本: iwebshop
要求:
web_url();
web_submit_data();
web_link();
web_submit_form();
web_custom_request();
web_reg_save_param()
lr_eval_string();
lr_save_string();
lr_output_message()
lr_paramarr_idx();
lr_paramarr_random();
lr_paramarr_len()
web_reg_find()
web_find()
web_image_check()
atoi();
itoa();
lr_think_time()
lr_start_transaction();
lr_end_transaction();
lr_rendezvous()
web_get_int_property()
获取状态码函数
6.1 性能测试的分类
性能测试:对系统进行施加压力,与预定目标进行比较
负载测试:属于性能测试的一种,通过逐步增加系统负载,确定在满足性能指标情况下, 系统所能承受的最大负载量,找系统挂之前的那个点
压力测试:属于性能测试的一种,确定在什么负载条件下长时间运行,系统失效
6.2 负载和压力设置的曲线图(见word文档)
6.3手工场景
1)用于设计用户的添加和减少过程,模拟真实用户请求模型
2)设置用户负载方式
1.通过Scenario Schedule中的Schedule by和Run Mode来设置的
2.画曲线图
Initialize
Start Vusers:选1.表示以多少个并发数开始运行的
Duriation:选2.表示持续运行多长时间
Stop Vusers:1.Simultaneously:立即结束 选择2.每多长时间结束几个
点击Add action添加action
3.设置的几种组合
3.1 多个脚本间按照相同模式跑,运行轨迹时一样的:
Scenario+Real-world schedule
3.2 多个脚本之间按照独立设置模式跑
Group+Real-world schedule
3.3 Basic schedule不常用
4.Scenario Groups中的设置
4.1 view Script 用来打开代码,可进行修改代码
4.2 Details---Refresh---script:修改完代码之后要进行刷新下代码
4.3 Details--Run-time Settings
4.4 Add Group:添加代码
4.5 Vusers----Add Vusers:添加用户
标签:登录 其他 retcode gic 相同 日志 mdr 任务管理 通过
原文地址:https://www.cnblogs.com/zhangyangcheng/p/12862239.html