LoadRunner操作进阶

本文详细介绍了使用LoadRunner进行性能测试的全过程,包括需求分析、测试策略制定、脚本录制与优化、参数化以及事务时间的计算。同时,对比了LoadRunner与QTP的区别,并探讨了网络延迟、加密解密等关键环节,为性能测试工程师提供了实用的操作指导。

2021.7.30上午项目结束,8月又是新的项目,今天又可以学习一天,加油

如何进行一次性能测试?

1、分析需求(功能需求-业务逻辑;性能需求-性能指标)
常见的性能指标:
平均事务响应时间、TPS、最大并发用户数、点击率、吞吐量、系统资源监控

2、制定性能测试计划:选择测试工具-LoadRunner11
测试范围、测试用例、测试策略、人员分配、进度安排、提交物

常见的测试策略

1、基准测试:单用户、单测试点、持续运行n次或n时间
2、并发测试:多用户、单测试点、严格并发执行

测试过程

1、Action脚本需要添加事务
lr_start_transaction(“事务名”);
lr_end_transaction(“事务名”, LR_AUTO)

2、事务开始之前要加集合点
lr_rendezvous(“集合点名”)

3、控制台场景中设置并发策略
比如:让n%的所有VU到达集合点时一起释放
综合场景测试:多用户、多测试点、在线执行一段时间

4、执行测试计划:LoadRunner的三大组件
1)VuGen: 录制和调试脚本、1VU回放脚本、设置Run-time Settings; – 模拟功能的实现、为后续运行提供增强点

2)Controller: 设置、运行、监控场景 Scenario
场景模式、脚本组(组名、脚本路径、VU数量)、VU行为(初始化、加载方式、持续时间)、Run-time Settings(迭代次数、Pacing、Log、Think time)、系统资源监控

3) Analysis: 结果分析

QTP和LoadRunner的区别

1、QTP: 功能自动化测试工具
LR: 性能测试工具 模拟大量VU,产生压力/负载

2、QTP关心的是界面(UI),关心的是对象(对象库)
LR只关心客户端和服务器之间的数据包(请求包、应答包),不关心对象,更不需要比对对象的属性值,只关心抓包(捕捉数据包-抓包工具:Wireshark、Fiddler等)-- LR关心网络协议(参考当前项目使用的技术协议)

3、如果用户界面改变了,但业务逻辑不变:QTP的脚本需要变化,LR的脚本不需要改变

4、LR不能补录,录制失败,从头再来

脚本录制----Action 分类

Vuser_init
Vuser_end
Action
在lr中用户的初始化操作应该存放在Vuser_init中。用户的结束操作存放在Vuser_end中。因为这两个Action在后面的Run Logic默认设置中是处在脚本最先运行和最后运行的位置,并且负载时,不管迭代多少次,Vuser_init和Vuser_end只会在开始和结束时被运行一次
Action用来存放用户的操作,可以当作普通的函数在负载,迭代时会被反复运行
所以,一般情况下,我们把登录部分放到vuser_init中,把登录后的操作部分放到Action中,把注销关闭登录部分放到vuser_end中,具体的,录制时可以通过如下方式切换Action,然后进行录制操作来实现

选择哪种方式录制,可参考以下原则

1、基于浏览器的应用程序,推荐使用HTML-based Script
2、基于非浏览器的应用程序,推荐使用URL-based Script
3、基于浏览器的应用程序中使用了HTTPS安全协议,推荐使用URL-based Script
4、基于浏览器的应用程序中包含了JavaScript并且该脚本向服务器产生了请求,比如 DataGrid 的分页按钮等,也要使用 URL-based Script方式录制

脚本优化,参数化

确定需要参数化的内容
选中需要参数化的内容
右键选中的内容->Replace with a Parameter->填写参数名,类型->保存
Vuser->Parameter List中设置参数值和参数更新方式
通过回放后的日志验证参数取值

脚本优化—事务时间

事务概念
事务是指用户在客户端做一种或多种业务所需要的操作集(actions),通过事务开始和结束函数可以标记完成该业务所需要的操作内容(脚本section)。定义事务来衡量服务器的性能,例如,你可以定义一个事务来衡量服务器处理查看账户余额和显示信息于ATM的请求时间

事务时间
一个事务的时间是指持续时间,从开始到结束
对于一个事务时间来说,一般由4个部分组成:响应时间,Wasted Time,Think Time,事务自身时间

响应时间
这个是事务的目的,响应时间是通过记录用户请求的开始时间和服务器返回内容到用户的时间差值来计算用户操作响应时间的
注:不包含客户端GUI时间,例如浏览器解释页面所耗费的时间
响应时间由网络时间、服务器处理时间、网络延迟三大部分组成

当一个客户端发出请求到服务器返回需要经历那些路径

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)。

2.服务器处理时间
各个服务器处理所需要的时间WT、AT、DT。

3.网络延迟
最终响应时间=网络延迟时间+WT+AT+DT+(N1+N2+N3)+(N4+N5+N6)+WT+AT+DT

影响网络的因素

1.前端Network
*DNS Lookup
*Time to connect
*Time to first buffer
*Network Time
*Download Time
*SSL handshake
*FTP authentication
*Client Time
*网络延迟

2 后端服务
*Web Server
–Servlet Time
–Method Time
–静、动态压缩
*App Server
–EJB Time
–Method Time
–JNID Lookup
*Database Server
–JDBC Time
–Connect Time
–Execute Time

这个后边出文章具体解释每个名词

脚本优化-----加密和解密

密码加密

可以给密码加密,意在把结果字符串作为脚本的参数或者参数值
例如,可能有一个用户密码填写的表单,想测试网站针对不同密码的反应,但是又想保护密码的安全。Password Encoder允许你加密你的密码
密码加密步骤
1.Start > Programs > LoadRunner > Tools > Password Encoder. 打开密码加密对话框.
2.输入密码
3 点击Generate.加密密码并在Encoded String框中显示生成的加密字符串
4 点击Copy按钮来复制并加密后的字符串值,然后黏贴到代码中,覆盖原来的value值

文本加密

加密文本来保护密码或者其它文本字符串凭据
可以通过界面自动执行加密操作,也可以通过编程手动加密, 可以随时撤销加密以查看原始值。加密后的文本变成一串代码,如532ab7d24fc40ab5a3b3b5b3c5
注意:VuGen使用32-bit加密

加密字符串

1 对于处于tree视图的协议脚本,切换到script视图查看。 View > Script View.
2 选择你要加密的文本
3 右键选中字符串,选择Encrypt string (string)

撤销文本加密

1 对于处于tree视图的协议脚本,切换到script视图查看。View > Script View.
2 选择你要取消加密的文本
3 右键选中字符串,选择 Restore encrypted string(string)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试小姐姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值