Loadrunner经常使用操做

  LoadRunner 参数化css

为何须要参数化?web

大众理解:为了更加真实的模拟用户操做数据库

底层原理: 1,应用服务,数据库会校验该值的惟一性(unique key)windows

          2,为了不数据库的查询缓存对性能测试结果的影响浏览器

  LoadRunner 关联缓存

1、为何须要作关联?服务器

1,回放的时候业务没有成功session

2,服务器返回一个动态变化的值,而且下次请求时须要用到这个动态变化的值并发

3,提交请求的时候,服务器会校验这些值的合法性;它们之间有依赖关系jsp

2、关联步骤:

1,找到服务器返回的动态变化的值

2,保存为一个参数

3,替换

3、哪些值须要作关联?

1, 服务器返回的动态变化的值,而后提交的时候校验该值的合法性(跟数据不打交道)

A,验证码(图片验证码、手机/短信验证码、邮箱验证码)

图片验证码 关联不到里面的字符串(须要知道字符串从哪一个jsp 里取出来的)

手机/短信验证码、邮箱验证码  验证码都是加密之后的

解决方法:1,让开发设置万能验证码;2,去掉验证码(通常不建议)

B,Session ,token 

C,时间戳

D,看起来没有任何意义的特殊字符串,还出如今你的请求里而且还不是你本身输入的字符串  

2, 跟数据库打交道的(增删改查)

A.Insert  插入的值跟其余数据有关联关系-经过一系列ID 创建这种关系

特征: 自增主键   Xxid   int 类型

Insert into 帖子表 values (uid,title,msg,posttime,fid)

Insert into 回帖表 values(tid,uid,msg,posttime,fid)

B.Delete  补全where id 类条件

Delete from table where xxid = ?? and xxid =?? And

                      In  (,,)

                      Not in (,,)

 between < >

C. Update 补全where 后面的 id类条件

Update table   set      where  同上

D .  select  补全where 后面的 id 类条件

select  字段 from 表 where 同上

实操: 淘宝网注册-> 登陆-> 绑定收件信息->修改昵称->删除一条收件地址->浏览商品->添加到购物车->支付->查看订单-> 取消订单-> 撤销申请-> 确认收货->评论-> 追加评论

注册:参数化 手机号 (惟一性校验)关联:手机验证,session/token

登陆:参数化 手机号(惟一性校验)关联:session /token

绑定收件信息:关联uid

修改昵称: 关联uid

删除一条收件地址:关联uid ,收件信息id

浏览商品:参数化 商品id

添加到购物车:关联uid, 商品id 店铺 id

支付:关联uid ,订单id

查看订单: 关联uid ,订单id

取消订单: 关联uid ,订单id

撤销申请: 关联uid ,id(订单id 或者工单id )

   确认收货:关联uid ,订单id

   评论:关联uid,订单id ,店铺id,商品id

   追加评论:关联uid , 订单id ,评论id

4、关联函数的位置

关联函数放在哪一个函数的前面,只会做用于它的下一个请求,因此关联函数的位置很重要

Insert  操做后紧接一条select 操做,将id 查出来以便后续操做--关联参数放在insert 以前

5、关联函数的写法

A,response 右键直接关联 (位置必定对)

B, insert -new step

C,Data returned by server (tree 视图中没有内容的时候)

D, 页面源代码

E,抓包

Fiddler 4 操做

Fiddler hide if url contains :REGEX:\.(js|css|js|png|gif|ico|gif\?.*|css\?.*|js\?.*|png\?.*)$

Any process  点击拖拽到浏览器上,则只记录该浏览器上的操做

 

脚本精简:跟实现业务无关的请求均可以去掉,可是关联的依赖请求不能去掉

 完善脚本

1、插入事务

事务:是一切脚本的基础

是成对出现的,start end 中名字需如出一辙

事务需定义准确,不要包含与被测接口无关的请求

事务中不包含集合的、思考时间

为了保持请求的干净及事务响应时间的准确性

2、模拟用户思考时间

Think Time : 等待多长时间再执行下面的请求

底层做用:控制请求的发送频率,以达到控制服务器压力的目的

能影响事务的响应时间及tps

Tps:1s 钟的时间能处理几个事务

3、插入检查点

检查点:会影响性能

为了调试用的;通常压测过程当中去掉检查点

Web_reg_find  预注册函数,放在请求前

Web_find ,web_image_check 等函数性能很差,不建议使用

注意事项:文本检查点函数须要注意位置;图片检查点须要开启run-time settings 里的设置

数据库写操做能够不加检查点

Select 操做时才须要加检查点

4、插入集合点

集合点:

是反映服务器的瞬时压力

集合点只是在某些特殊场景中须要验证严格并发是否可以经过,好比秒杀

集合点不能添加到事务中,要放在事务外,不然事务的统计会把集合点的等待时间也统计进去

进程、线程:默认勾选线程,进程资源消耗太多,通常没那么多执行机资源的

实践经验:若是跑场景是出现乱七八糟的事务,run-time settings  中miscellaneous 中先勾选 automatic transactions 下的两个选项,

点击【保存】->再次打开run-time settings ,取消勾选这两项,点击【保存】便可

  其余协议脚本

 1、Webservice 实例

第一个是检查点,第2、三个是关联

两关联是如出一辙,只是结果稍有不一样。工做中任选

对应的函数分别为:

Lr_xml_get_values()

Lr_xml_find()

Lr_xml_extract()

2、WindowsSocket 协议:

选择windowsSocket协议,点击录制

相关函数:

Lrs_receive_ex

Lrs_receive

Lrs_save_param

相关文章
相关标签/搜索