暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

LoadRunner原理、使用流程及脚本实战

全栈测试笔记 2019-10-28
578


loadrunner是一款主流的客户端并发工具,功能很强大,虽然近几年风头不及开源且轻量级的jmeter,但它依旧宝刀未老,从招聘信息上就可以看到,很多招聘都要求会loadrunner,所以,学会它,对提升自己的竞争力很有帮助。


01

loadrunner工作原理

   ____
loadrunner只关注底层数据,即监控客户端和服务器端之间发送了什么数据,而不关注业务、也不关注客户端动作;
不关注业务:脚本运行正确不一定业务就正确,也就是说不是我们期望的业务结果,脚本运行正确只能说明服务器做了响应,但是响应的内容不一定符合业务需求;怎么判断业务是否正确呢?如果是查询,我们可以通过添加检查点来判断;如果是增、删、改操作,可以对比通过的事务数和数据库中数据增、删、改的数量来判断;
不关注客户端动作:比如下载图片,用loadrunner请求要下载的图片的页面,对于在图片上“右键→另存为…”,loadrunner不能完成这些动作(如果是录制脚本就可以观察到,执行这些动作的时候,客户端和服务器没有数据通信,因为loadrunner只关注数据传递,而不关注动作);

02

loadrunner使用流程

   ____
下面简单介绍下常规使用流程
1.录制脚本  
  划分action,且改action名字
  备注:录制是每个初学loadrunner的同学的必经之路,会遇到很多坑,真的很折磨人,本人只在以前学习的时候用过录制,受环境影响,有时录制不到脚本或者录制过程中卡死,所以,在实际工作中,都是直接写脚本(这个后续分享),不用loadrunner的录制功能,直接写loadrunner脚本也不是大家想象中的那么难,还是有些偷懒的小技巧的,但是,为了帮助想学录制的朋友,本篇我们还是会通过实战介绍如何录制脚本。
2.脚本优化
  a.为每个action插入注释,这样增加脚本的可读性以及易维护性;
  b.添加集合点(一般秒杀业务才添加);
  c.添加事务点;
  d.修改思考时间;
  e.保存脚本,回放,添加关联(如果需要关联);
  f.根据实际情况进行参数化,如对登录用户名参数;
3.场景设计及执行
4.结果收集
5.结果分析

03

启动服务

   ____
安装好loadrunner,我们就可以实践了。安装包请加Q群652122175获取,安装参考:
https://www.cnblogs.com/uncleyong/p/10698925.html
loadrunner自带订票网站,可以方便我们练习
先把下面两个发送到桌面快捷方式
首先,启动服务,点击下面图标(如果服务无法启动,检查端口是否被占用)
然后,打开首页,点击下面图标
登录的用户名:jojo,密码:bean

04

录制脚本

   ____
桌面上点击loadrunner图标
点击第一个创建或编辑脚本
选择第一个新建脚本
选择协议,因为订票网站是http协议的,这里我们选择Web(HTTP/HTML)
进入创建脚本的介绍页面,关闭即可
鼠标点在下图左侧哪个文件,录制的脚本就放到对应的文件中,另外,vuser_init和vuser_end里面的脚本只执行一次
 同时,还会打开这个框
上面各个选项的含义:  
  Application type,应用程序类型
    Internet Application是指我们需要录制的对象是一个网络应用(B/S)
    Win32 Application是用来支持Win32的标准客户端的(C/S)
  Program to record,要录制的程序
    我们需要录制的程序名,LoadRunner默认支持的Web客户端是IE
  URL Address,URL地址
    我们录制开始所需要访问的URL地址
  Working directory,工作目录
    用来指定录制后脚本所存储的目录
  Record into Action,录制到操作
    我们录制的内容放在哪个Action中,Action是LoadRunner提供的一种类似于函数的脚本块,我们通过将不同的操作存放在不同的Action中实现代码的高内聚低耦合
    Vuser_init存放LoadRunner中用户的初始化操作
    Action是非常自由的,可以当作普通的函数
    Vuser_end存放LoadRunner中用户的结束操作
  Record the application startup勾选,表示一旦启动了应用后就将开始录制我们应用收发的协议数据;不勾选,一般在补录的时候用,到需要录制的地方,点击【Record】即可

上图点击【OK】,打开首页,这里我们只录制访问首页的脚本。
直到网页左下角显示“完毕”才点击停止。 
特别提醒:生成脚本过程中不能乱点鼠标,否则loadrunner可能会死掉。
日志记录了客户端和服务器端交互的过程(协议过程)
利用协议和字符集解析录制的过程,生成脚本代码(字符集不对可以问开发人员)
录制的首页脚本
查看结果
 

在上面打开首页的基础上,录制登录,然后退出。
最好先设计好Action,可以在录制每个Action前创建新的Action
先对已经录制好的打开首页的action改名字,改为openindex
添加一个登录的Action,命名为submit
点击录制
 因为这里是补录,所以去掉下面的勾,然后点击【OK】
点击【是】即可
进入到登录页面,这里可看到还没有开始录制

如果输入登录信息时就和服务器做校验,即和服务器产生交互(如AJAX技术),就先点击录制,然后输入用户名和密码,点击登录;否则可以输入完用户名和密码后,在点击登录前点击录制。
此处可以先输入信息再点击录制、最后点击登录。
登录成功后,再创建一个退出的action,命名为logoff
然后点击退出。
点击退出后,事件个数为40个,再关闭网页,事件个数依然为40个,说明不会记录关闭网页的行为,即不关注客户端动作
录制完成

05

回放脚本及查看结果

   ____
点击运行回放脚本(回放默认是不显示浏览器的)
查看结果,可以看到,首页、登录、退出都是Passed状态
但是,我们点击到登录这里,提示没登录成功(是回放没登录成功)
回放没登录成功(虽然显示Passed,但是业务不是我们期望的,因为loadrunner不关心业务
如果登录成功,该显示welcome,jojo等信息,如下图
登录失败,就涉及到关联的知识点了,下一篇分享。


声明:封面或正文部分图片来源于网络,如有侵权,请联系删除。

END

抛砖引玉,欢迎交流;

水平有限,难免有错,欢迎斧正。

欢迎长按下图联系作者

欢迎长按下图关注全栈测试笔记

 如有疑问或者建议,请关注联系作者 


推荐阅读

点击阅读☞如何面试性能测试

点击阅读☞面试题(造火箭必备技能):请举例一个最有成就感的性能bug

点击阅读☞jmeter5.1分布式压

点击阅读☞性能测试案例:redis获取不到连接池,Timeout waiting for idle object

点击阅读☞性能测试案例:tps波动频繁

点击阅读☞性能测试案例:一个频繁fgc问题

点击阅读☞性能测试案例:数据库cpu高导致响应时间长


如有帮助,请帮忙转发或点个在看~

文章转载自全栈测试笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论