lr脚本优化、关联、参数

一、优化脚本之删减脚本

1.检查脚本里面跟我们目标网站不符的URL地址,删除掉这些请求

2.脚本里面关于图片和其他无关资源下载的请求,删除掉jpg、jpeg、bmp、png、swf、fls

3.没有ACTION 没有URL地址的删掉,因为没有地址,数据没有地方去

4.重复的请求删掉

5.没有提交数据的或者是没有看到itemdata这个关键词的注释掉

6.再次回放,并查看日志

7.ctrl+alt+c 注释脚本

ctrl+alt+u 去掉注释

二、关联

1.什么是关联?

· 把脚本中某些写死的数据(硬编码),转变为服务器发送的、动态的、每次都不一样的数据(以不变应万变)

2.为什么要使用关联?

因为服务器端在与客户端的交互过程中,根据业务需求会产生每次不同的数据,为了让固定的脚本能够适应这些数据,需要关联

3.什么时候使用关联?

录制时是正常的,但是回放时不成功,存在动态数据信息(动态id),考虑关联

4.一般关联的操作步骤

(1)从服务器返回的数据中选取需要进行关联的数据(找数据)

(2)将该数据存入脚本的一个参数中

变动的数据在脚本中是参数,由于是变化的,所以叫动态ID(需要关联的数据)

(3)将脚本中需要使用数据的地方用该参数代替

5.怎么做关联?

(1)录制两次相同操作的脚本

(2)两次脚本,做比较 Tools--Compare with Script..

(3)白底表示相同部分,黄底表示不同,黄色的大块,不用太关注,因为和数据包的先后有关,找出动态ID(动态ID一般是一串无规律的字符串)

(4)关联类型;手动关联(常用)

使用web_reg_save_param()函数(预注册函数,需要写在相应请求之前:寻找相应请求),在源文件中找到需要关联的字符串(动态数据),存入一个参数中

把录制时数据替换为该参数(动态数据)

(5)如何查找到相应请求?(为了在之前写关联函数)

①拷贝动态ID适当长度,从下方的Generation Log的第一行开始查找!!!

如果该动态ID查找到的位置是在服务器的应答包中(Response Body...),说明查找正确。(第一次,是从服务器发出的ID)

②查找到之后,选取适当长度的左右边界,拷贝下来,准备写函数。

③先向下慢慢翻找,找到与当前应答id号相同的id号的请求,该请求即为相应请求。 (90%的情况都是在下方不远处,Request 和 Event 都是请求)

web_url("... "Snapshot=t7.inf", ); 快照名是唯一的,作为线索

寻找脚本中t7.inf对应的请求位置。将拷贝的串信息粘贴到请求之前

④找到相应请求之后,在请求之前写关联函数,并将后续脚本中用到动态ID的位置用函数中的参数名替代。

web_reg_save_param("uid", //参数名称

         "LB=name=userSession value=", //左边界

         "RB=>", //右边界

          LAST);

相应请求;

⑤之后,将脚本中的ID值,用参数uid代替:

"Name=userSession", "Value=121571.58890239zcfDDDipzAtVzzzHDHfcApADVzcf", ENDITEM,

改为:

"Name=userSession", "Value={uid}", ENDITEM,

即可。{uid} 取得LR的变量值,LR语法范围内有效的。

⑥再次回放购票脚本,购票成功

三、参数化设置步骤

1.目的:模拟真实场景,例如,登录操作,不可能所有的用户名都一致

2.打开参数设置,两种方式

(1)工具栏中的倒数第二按钮,<p>--Open Parameter List(Ctrl+L)

(2)Vuser--Parameter List..

3.新建参数(以飞机票为例,注册用户)

(1)new三个参数,命名为username、pwd1、pwd2

三种方式:手动增加行增加列,输入、可通过笔记本导入、连接数据库导入

(2)调用参数取值的方式

①手动填写 {参数名},如{username}

②选中值,右击,Replace with a Parameter,用参数替换,选择参数,ok

4.脚本只实现注册一次的功能,5个参数,所以需要注册5次,即脚本运行5次

Run-tine Settings---Run logc,设置5次

5.运行脚本,最后验证是否注册成功,用注册的这些值去登录,看是否可以登录

四、参数池策略

1.select next row(取值方式)

(1)Sequential 顺序:对于每个VU,都是从第一行开始,顺序依次向下取值

(2)Random 随机:对于每个VU,取值随机,值可以重复

(3)Unique 只用一次:对于每个VU,从第一行开始,唯一依次向下取值

(4)和xx一样:同行步调一致,具备一定关系

2.Update value on(何时取?when?)

(1)Each iteration 每次迭代:每次脚本循环(默认Action)时更新参数的值

(2)Each occurrence 每次遇到就更新:脚本运行时,只要遇到该参数即更新

(3)Once 仅取一次:从头到尾只用这个值

3.Out of value(越界方式===参数池数据不够时,Unique)

(1)放弃VU:直接放弃该虚拟用户,

(2)以循环方式继续:循环从第一行继续取

(3)以最后一个值继续:一直使用最后一个值

4.以两个输出函数为例,test为3个参数,依次为ABC

(1)Sequential +Each iteration

迭代第一次,输出:AA

迭代第二次,输出:BB

迭代第三次,输出:CC

(2)Sequential+Each occurrence

迭代第一次,输出:AB

迭代第二次,输出:CD

(3)Sequential+Once

迭代N次,输出:A A

(4)Random+Each iteration

迭代N次,输出:A or B or C

(5)Random +Each occurrence

迭代N次,输出:A or B or C

(6)Random+Once

迭代N次,输出:A or B or C

(7)Unique +Each iteration

迭代第一次,输出:AA

迭代第二次,输出:BB

(8)Unique +Each occurrence

迭代第一次,输出:AB

迭代第二次,输出:C D

(9)Unique+Once

迭代N次,输出:A A

五、控制台

1.设置场景

(1)Start Vusers 双击-->设置一个小的递增

(2)Duration双击(Action脚本)

 

六、分析结果

1.报告讲解

(1)Transcation Name 事务名称

(2)最小值、平均值、最大值

(3)Std.Deviation 标准方差值,越小越好,越趋近于0,表示所有用户执行该事务的响应时间越接近,表示系统越稳定

(4)90 Percent 90%响应时间:表示该组中90%的用户在0.XX秒内完成操作

(5)网络带宽充足的情况下,当吞吐量(Throughput)随着点击率(Hits per second)的升高而升高,说明AUT的服务器处理能力充足

2.性能测试分析

(1)如发现某些事务响应时间超长(最普遍)该怎么处理?

①通过分析报告中几个比较重要的图表进行查看,初步定位问题,再通过网页细分图(网页诊断图)去确定响应时间长在系统的哪个部分,大多情况,时间长在服务器端

(响应时间=客户端时间+网络时间+服务器时间)

②如果是应用服务器发生问题,调整服务器配置参数即可

③大多数情况是数据库服务器

(2)Web Page Breakdown网页诊断图

①DNS: 域名解析系统,将服务器的域名和服务器的IP地址对应起来的系统,可以将域名解析为IP地址

②Connection时间:

③First Buffer:第一次缓冲(第一个数据包,可以细分为网络及服务器处理时间+数据库时间,发请求到收到第一个缓冲)

④Receive:获取到所有数据包的接收时间,该时间可以衡量网络质量情况。如果时间较长,一般说明网络不好,如果确定测试环境是内网,网络不是问题,则可能是客户端,也可能是服务器的问题

猜你喜欢

转载自blog.csdn.net/qq_39620483/article/details/82991501