文章目录
接着上一篇
【Loadrunner】学习loadrunner——性能测试基础篇(一),这边文章继续总结loadrunner用法。
1.loadrunner初识
1.1.loadrunner是什么
LoadRunner是一种适用于许多软件体系架构的自动负载测试工具,从用户关注的响应时间、吞吐量,并发用户和性能计数器等方面来衡量系统的性能表现,辅助用户进行系统性能的优化。
1.2.loadrunner执行原理
loadrunner启动以后,在任务栏会有一个Agent进程,通过Agent进程,监视各种协议的Client与Server端的通讯,用LR的一套C语言函数来录制脚本,所以只要loadrunner支持的协议,就不会存在录制不到的,然后loadrunner调用这些脚本向服务器端发出请求,接受服务器的响应。至于服务器内部如何处理,它不关心。
LoadRunner通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,优化性能和加速应用系统的发布周期。
1.3.loadrunner组成
LoadRunner主要包括三个前台功能组件,分别为Virtual User Generator(虚拟用户脚本生成器)、Controller(测试控制器)和Analysis(结果分析器)。系统会自动调用后台功能组件LG(负载生成器)和Proxy(用户代理)来完成性能测试工作。
- Virtual User Generator(虚拟用户脚本生成器):是录制与编写脚本的地方。通过录制或编写脚本来模拟用户的行为。
- Controller(测试控制器):是执行负载测试管理和监控的中心。在这里指定具体的性能测试方案,执行性能测试,收集测试数据,监控测试指标。监控工具将测试过程中收集到的客户机、服务器和网络性能指标数据显示在监控页面上,便于测试人员对系统表现进行随时掌握。(创建、运行、监控)
- Analysis(结果分析器):测试完成后,对测试过程中收集到的各种性能数据进行计算、汇总和处理,生成各种图表和报告,为系统性能测试结果分析提供支持。(分析测试结果,得出测试报告)
整个运行过程可总结为:
先用VUG来编写性能测试脚本,然后用controller来运行性能测试脚本,针对脚本以及具体的场景来设置测试场景,监控脚本在执行过程中的状态,最终根据性能测试结果生成测试报告。
2.Virtual User Generator(VUG)的使用
2.1.使用vug创建性能测试脚本
- 启动 Visual User Generator 后,选择新建脚本,因为要测试的是web项目,所以选择协议为WebHTTP/HTML,点击创建后,进入主窗体。
2.2.认识性能测试脚本页面
创建完成之后,进入如下页面,使用C语言进行编程,这里如果我们录制的话,可以将录制转化为C语言代码
2.3.打开WebTours服务
我们在录制之前,需要先打开WebTours服务,如果没有打开,我们是录制不了的。
(1)我们需要找到我们软件的安装路径,找到下图文件,双击打开
(2)打开之后,如下图:
(3)然后我们在浏览器访问WebTours服务,链接为:http://127.0.0.1:1080/WebTours/
2.4.开始录制
(1)点击页面的录制按钮
(2)登录账号
可先把文件夹改成.txt,查看内容,再改回去
登录成功:
(3)停止录制之后,生成以下脚本
编译:检查语法是否存在错误,如果不想在执行过程中出现错误,最好先编译一下
回放:运行脚本,检查脚本是否存在错误
点击回放按钮,可以看到如下:
红框里面会告诉我们很多信息:吞吐量,头部的字节等等…
3.脚本的增加(手动编写)
3.1.为什么要进行脚本的增强
- 录制的测试脚本达不到预期的测试目的
- 缺乏针对性
3.2.增强脚本需要采取的手段
3.2.1.事务(Transaction)
为了衡量服务器的性能,我们需要定义事务。比如:我们在脚本中有一个数据查询操作,为了衡量服务器执行查询操作的性能,我们把这个操作定义为一个事务,这样在运行测试脚本时,LoadRunner 运行到该事务的开始点时,LoadRunner 就会开始计时,直到运行到该事务的结束点,计时结束。这个事务的运行时间在结果中会有反映。插入事务操作可以在录制过程中进行,也可以在录制结束后进行。LoadRunner 可以在脚本中插入不限数量的事务。
- 开启事务:lr_start_transaction(“事务名称”)
- 结束事务:lr_end_transaction(“开启事务时取的名称”,LR_AUTO)
添加事务的两种方式:
- 直接在代码中添加
- 使用工具来添加事务函数
3.2.2.集合点
集合点:LR为了实现真正意义上的并发而进行的一种机制,让虚拟用户进行短暂的集合,在满足特定的条件情况下开始放行,产生并发数。
- 函数:lr_rendezvous(“集合的名称”)
【注意】
集合点只能放在action中,并且集合应该放在事务之前
【目的】
插入集合点是为了衡量在加重负载的情况下服务器的性能情况。
3.2.3.检查点
检查点:相当于junit里面的断言,在进行压力测试的时候,检查服务器是否能够准确返回指定的测试对象。
函数:web_reg_find(“Text=想要匹配的关键词”,LAST);
【注意】检查点函数一般放在页面请求之前
3.3.4.参数化
参数化:如果用户在录制脚本过程中,填写提交了一些数据,比如说要增加数据库的记录,这些操作都杯记录到了脚本中。当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且可能引起冲突,为了更加真实的模拟实际环境,需要各种各样的输入。因此参数化是一种不错的方法。
选择NO
如果我们想要为这个变量添加更多的参数的话,点击:
在这里添加完用户参数之后,我们也是不能在网址上登录的,我们需要创建文件。复制原来的jojo文件,然后创建ones与twos文件,然后更改里面的内容。
【注意】文件里面的格式不要改,只改名称就可以了
完成之后,我们就可以登录进行验证了:
保存之后,运行,可以看到,确实执行了三次
下一篇将分享controller的使用与analysis的使用。最近广州疫情变得严重了,在另一方面,开放的声音又不断冒出。我是相信世界是均衡的,无论选择何种方式去面对,都会有相应的后果,作为普通大众,我唯一能做的就是跟从大局走。
当一件事情你控制不住它的走向的时候,那么,请你且听风吟,及时行乐,提升自己,寻找生命的意义…
版权归原作者 十叶知秋 所有, 如有侵权,请联系我们删除。