LoadRunner学习笔记
压力测试:为了得到非正常情况下的数据,测试系统在超负荷(背着米袋一直做深蹲)情况下能不能正常工作,测试取得”失效点“(实在做不动)可未雨绸缪地对系统负载进行监控,防止系统瘫痪。
性能测试步骤:
- 需求是什么样的,我们希望证明满足需求的标准是什么?
- 负载的模型,我们需要做什么的操作(深蹲)和什么样的量(20个)?
- 监控负载中我们关心的数据(如:性能拐点、有效峰值、失效点),以便分析。
- 整理数据确认结论是否能够满足需求,另外有没有调优的空间(又没有达到需求)。
- 满足需求则结束性能测试,否则进行调优,调优完成后从步骤1重新开始测试。
性能测试关注3点:
- Response Time(响应时间/事务时间):完成一件事务所用的时间
- Transaction Per Second(事务每秒数/吞吐量):同时能处理多少个操作
- Resources(资源利用率)
Ps:性能好就是多拉(吞吐量大)、快跑(事务时间短)、还环保(资源利用率高/资源用得少)
导致性能瓶颈的原因:
硬件资源:
一般来说所有的性能问题都能通过更新升级硬件资源来解决(正所谓重启解决80%的问题,重装解决99%的问题,重买解决100%的问题)
操作系统:
硬件的升级是有一定上限的,因为它受到操作系统管理能力的影响。操作系统提供了对硬件的管理和支持,合适的操作系统才能完全发挥硬件的性能。如你的电脑的内存已经达到了4GB,那么64位操作系统是你最好的选择,因为32位操作系统已经无法管理4GB内存了。
数据库:
数据库是现代操作系统不可或缺的组成部分之一。很多大型系统的性能瓶颈往往是在数据库上,因为大量的数据读写对系统产生的磁盘读写和计算要求非常高。一个合适的数据库和数据库上的数据存储方式都会影响最终的数据查询或者写入性能。
应用服务器:
不同的应用服务器处理不同的语言会有效率上的区别。
代码:
代码起初主要强调的是算法,而现在更多的是强调并行化,将传统的循环变为并行循环就可以提升代码执行的效率。当然这里和开发语言也有一定的关系,越是低级语言性能越好,但是开发效率和难度也随之上升。
安装VM虚拟机
1.下载VM安装包(VMware Workstation Pro v16.0.0 官方版+激活密钥)
官网:https://download3.vmware.com/software/wkst/file/VMware-workstation-full-16.0.0-16894299.exe
天翼网盘:https://cloud.189.cn/t/QFNRbavmyY3y (访问码:61tm)
激活密钥:ZF3R0-FHED2-M80TY-8QYGC-NPKYF
2.下载Win10*64的iso镜像文件
MSDN下载:https://msdn.itellyou.cn/
我下的是:Windows 10 (consumer editions), version 1909 (updated Jan 2020) (x64) - DVD (Chinese-Simplified)
MSDN下载地址:ed2k://|file|cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x64_dvd_47161f17.iso|5417457664|274FEBA5BF0C874C291674182FA9C851|/
天翼网盘:https://cloud.189.cn/t/3yQvie7ZBJVb (访问码:20r9)
Ps:
①ed2k链接用迅雷可以下载
②如果下载慢、时快时慢、卡99.99%开个迅雷白金会员就好了(充钱解决100%的问题)
3.按照书上的教程一波操作
Ps:
①书上是创建一个空白硬盘然后后面在设置内存、网络适配器、驱动器的,这个方法好像有点问题,点击启动虚拟机的时候会卡无响应。我是在创建的时候直接选择镜像(直接不输入密钥安装,有必要或者条件的可以激活一下系统)然后一起设置内存、网络适配器这些的。
②我版本选的是Win10 Pro,然后重点:全名要设置为全英文,可以跟我一样设置为"admin",千万不要有中文,不然在录制脚本或者回放脚本的时候容易出错
4.出现一堆问题,不晓得是不是我的问题
问题1:
VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录。
未能将管道连接到虚拟机: 系统找不到指定的文件。
解决方法:
据说设置为以管理员身份运行就OK了,我也试了,但是有没有用记不清了,没留意
问题2:
VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录。
VMX进程已提前退出
解决方法:
“设置”→“应用”→找到VM虚拟机→选择“修复”(如果没有就点卸载,然后就会出现“修复”)→修复完成后要求重启→重启
这个方法我也试了,具体有没有用我也忘了。
问题3:
由于找不到VCRUNTIME140_1.dll,无法继续执行代码。
解决方法:
1.下载微软常用运行库合集(MSVBCRT.AIO.2020.09.17)
天翼网盘:https://cloud.189.cn/t/VRjiI3RNfUFf (访问码:8ii6)
2.傻瓜式安装
安装完成之后完美解决问题
安装HP LoadRunner
1.下载HP LoadRunner
我学LoadRunner是为了参加软件测试竞赛,竞赛里面用的是英文版的LoadRunner12.55_Community_Edition ,所以我下载的是LoadRunner12.55_Community_Edition 。
然而,我几乎找遍了全网都找不到官方的下载地址,包括书中的地址也试过了,还有下面两个方法也试过了
英文网站,建议开翻译:https://www.guru99.com/guide-to-download-and-install-hp-loadrunner-12-0.html
简书:https://www.guru99.com/guide-to-download-and-install-hp-loadrunner-12-0.html
这两个方法提到的都是同一个网站:https://software.microfocus.com/signup
这两个方法我都试过了,实在下载不了12.55,只能下载12.60的,不是我要的版本
最终是在这位大佬的博文下面下载的12.55版本,刚好这位大佬也是为了参加软件测试竞赛才折腾的这个软件,上面还有原来测试的飞机订票系统和服务器。
loadrunner12.55的资源、飞机订票系统和服务器:
https://blog.csdn.net/qq_42680327/article/details/86773465
顺便Mark一下这位大佬的另外两篇博文:
Loadrunner12.55 HP WebTours服务启动失败:
https://blog.csdn.net/qq_42680327/article/details/86773684
省赛之性能测试loadrunner12.55详细教程:
https://blog.csdn.net/qq_42680327/article/details/88357320
好了,废话不多说
LoadRunner12.55_Community_Edition下载链接:
天翼网盘:https://cloud.189.cn/t/7fiQ7jZ7biyq (访问码:jo8x)
2.安装HP LoadRunner
书上安装的是12.50,我安装的是12.55,我是按照网上的安装教程来安装的,但是过程和书上的差别不是很大
HP LoadRunner_12.55安装详细流程:
https://blog.csdn.net/sun_hm/article/details/104902706
Ps:
因为要用到chrome,也不知道比赛的时候chrome有没有预先安装好,如果没有预先安装好,最好先安装chrome再安装LR,因为不晓得LR再安装的生活会不会对chrome做些什么,如果后安装chrome可能又要进行一些其他的什么操作来配置了。我安装LR安装到一半才想到这一点,草率了....
①因为是安装在虚拟机上面,而且比赛的时候也不适合随便改安装的默认配置、默认路径,万一出岔子就没得玩了,所以我安装的路径都是默认的都安在C盘。安装过程有点慢,要耐心等一下。
②要留意教程的每一个字,特别要留意1(关闭杀软、LR无需配置环境变量)、3(以管理员身份运行安装包)、6(仔细看图中文字)、7(我们和文章作者一样选择即可)、9(要保证有足够的安装空间)、12(注意是去掉√,然后选择自动生成证书)、13(基本所有操作与作者保持一致)、15(点击“稍后重新启动”,千万不要点错了)、16(默认路径是:C:\Program Files (x86)\HPE\LoadRunner\bin;随便点开一个LR的图标然后打开文件位置即可)、17(默认路径是:C:\Temp\HPE LoadRunner 12.55 Community Edition\DVD;我点了LoadRunner完全安装但是没什么变化,不管了)步。
③因为比赛上用的英文版的LR,所以我就不接着汉化了,有需要的可以按照教程进行汉化。
3.安装Chrome
Chrome最好在安装LR之前安装,原因上面说过了就不再重复说了
为什么安装Chrome也要单独说呢?不是傻瓜式安装就OK了吗?
虽然Chrome是傻瓜式安装,但万一遇到我这种情况呢?
首先,我是连的电信的校园网宽带,需要登录天翼校园网客户端的,而且是每人一个账号不能共享账号,也就是说一个账号不可能在两台PC上面使用。好了,我的情况说完了,那么我遇到的是什么问题呢?
问题就是安装Chrome的时候要联网,问什么要联网我也不知道,然后我才发现虚拟机上面没有网络。
然后我第一时间就想到了是校园网的问题,想着在虚拟机上面装个校园网客户端不就搞定了吗?然后我就下载了校园网客户端在虚拟机,刚准备安装就想到,平时不登录客户端,进天翼校园网的网页也是能访问的,就想在虚拟机的浏览器里面试一下能不能访问,结果网页打不开,然后我又想了一下,就算在虚拟机上面能用校园网客户端联网,那我本机的网络不就被顶下来了吗?然后我就放弃了这个想法。
我不用校园网宽带,我用wifi总可以了吧?
然后我就在本机上面连了手机开的热点,虚拟机还是没有网络。
然后我就想到了是之前设置了的那个“桥接模式”的问题,然后我就去面向百度编程了
找了好多个教程试了都没用,但是我发现了一个配置和教程上面的都不太一样,就是在虚拟网络编辑器里面,别人的网络都有“桥接模式”类型的网络,而我的没有,是不是就是没有这个才导致连不上网的?
然后就找到了下面这篇博文,这篇博文囊括了很多种情况:
VMware的虚拟网络编辑器,在配置的过程中没有桥接模式!
https://blog.csdn.net/nathan8/article/details/105441646/
我是第二种情况,把虚拟机关了,然后还原默认设置,重启一下虚拟机,网络就正常了(网络里面有桥接模式了)。
注意:我现在是连的是wifi。然后我把校园网宽带重新连上(断开了wifi),果然网络又有问题了,然后我重启了一下
虚拟机,试了一下虚拟机能不能访问天翼校园网的网页,结果能访问了,但是还是要登录客户端才能正常用网络,所以还是选择用wifi来操作。
Ps:
①天翼校园网客户端连接校园网宽带(有线)和连接wifi二者不能同时存在,只能二选一,就是说连接其中一个的时候另一个要断开(如果要用wifi的时候,不但要退出天翼校园网的客户端,还要把连接到电脑上面的网线拔了;反之则断开wifi),不然网络会出问题。
②进行wifi(无线)和校园网宽带(有线)网络切换之后要重启一下虚拟机,不然网络又会不正常,不知道这是哪里出了问题,如果有更好的解决方法请告诉我一下。
接着安装Chrome...
我现在知道为什么安装chrome要联网了,特喵的,还要下载,是我下载错安装包了吗?下载安装包,然后安装包再下载安装包?好家伙,无限套娃...
好家伙,还给我来个下载失败...
多次尝试都是失败之后,我感觉又是桥接模式搞出来的问题
然后我把网络改成了NAT模式
,结果光速下载完成、安装完成....而且校园网宽带也正常,不用在虚拟机上面再登录一个校园网客户端也可以正常上网...
4.安装WAMP
我用的是:wampserver3.2.0_x64,因为我一直都是用的这个版本。
安装过程和书上的操作差不多,wamp启动之后图标是绿色的就代表一切正常,如果是红色或者是橙色的就是有服务启动失败,一般无非是80端口被占用、mysql服务已启动这些问题,随便百度一下就能解决了。
5.安装DiscuzX1.5
Discuz_X1.5_SC_UTF8(UTF-8简体中文版)下载地址:
官网:https://www.discuz.net/thread-1894393-1-1.html
天翼网盘:https://cloud.189.cn/t/qY3ayiYbmY3q (访问码:gmb4)
①在把安装包里面upload目录内容解压到WAMP安装目录下的www目录下前,先清空www目录
②按照书上来操作
安装过程中可能遇到的问题:
①进入安装页面的时候,报错
解决方法:这种问题一般都是php版本导致的,这个DZ的版本太旧了是2010那时候的版本,所以在WAMP里面把PHP的版本调低点就OK了,我调到了5.6.40就正常了
6.开始第一个性能测试(P32页尾)
英文翻译:
英文 | 中文 |
---|---|
New Script and Solution | 新建一个脚本和方案 |
HTML Advanced | HTML高级设置 |
A script describing user actions | 描述用户操作的脚本 |
A script containing explicit URLs only | 只包含显式URL的脚本 |
Transaction | 事务 |
Create Controller Scenario | 创建控制器场景 |
Number of Vusers | 虚拟用户的数量 |
Windows Resources | Windows资源 |
Add Measurements | 添加测量值(监控值) |
Processor Time | CPU占用率 |
Vugen = Virtual User Generator | 虚拟用户生成器 |
①录制脚本
I.从P33的图1-59到P34的图1-60之间少说了一步:
点击这个红色的小圆点(Record→记录)或者Ctrl+R就会弹出图1-60上面的那个窗口了
II.P34上面提到的“Recording Options”就在上面提到的那个弹出来的窗口(图1-60)的左下角:
III.补充一下书上没说的,在“Application”可以选录制的浏览器,因为比赛的时候用的是Chrome所以我选的就是Chrome,如果不选择默认是IE,然后下面的URL address可以输入要启动的网址,不输入也可以
III.点击“Start Recording”后弹出了一个提示:
翻译如下:
没有网络?然后我在浏览器打开了百度...
网络一切正常呀...作为一名专业的CV程序员、Github搬运工第一时间在百度上面搜索了一下这个问题,然后结果测试和百度上面的描述得出了一个统一的答案:勾选Don't check internet access again(不再检查网络访问),对以后的操作没有半毛钱影响。
IV.如果接下来有申请什么网络、启用脚本(加载项)什么的弹出或提示全部都允许就对了,包含但不限于下列状况:
常见问题:
①:这种情况是你在开始录制脚本之前已经打开了要录制脚本的浏览器,提示准备关闭已经打开的浏览器,直接点OK就OK了
②:这种情况是没有把虚拟机的网络模式设置成“桥接模式”,把虚拟机的网络模式设置成“桥接模式”就OK
④:IE浏览器脚本录制和回放都成功,但是Chrome打开页面总是在加载中、加载慢、打不开。估计原因可能是Chrome版本太高,但是我试了低版本好像也不行,就不琢磨了,可能是版本还不够低或者太低了,也可能是其他原因。
通过loadrunner录制chrome的脚本时,发现chrome一直卡死,等好一会儿能才能出来,跟踪确认是chrome去访问了google的网址,而由于墙的原因一直卡到超时才能继续。卡住的时候耐心等待就好了。
——详情看问题⑤
然后百度的方法(如下)也试过了,还是不行,然后还有其他好几种方法都试过了,还是不行,搞到一点脾气都没有就不折腾了,屈服了,如果有哪位兄弟解决了可以告诉我一下。(应该普遍现象,我看的千峰教育的LR教程的时候,讲师就说了他试过Chrom也不行,最终用360极速浏览器来解决)
⑤:噼里啪啦一堆东西主要说的就是“无法与正在使用的应用程序建立安全连接”要将LR的SSL证书导入到客户端计算机。然后然后给了一个网址叫你参阅案例三。
http://lrhelp.saas.hpe.com/en/12.53/help/WebHelp/Content/VuGen/t_HowToRecordViaProxy.htm
然后我满怀期待地打开这个网址,想在里面找一下解决方法,结果....我还是太年轻了,网站进不去,就算使用魔法也进不去...
然后经过我一番面向百度编程,误打误撞找到了这篇博文:
https://blog.csdn.net/tang_jian_dong/article/details/87004827
然后我仔细看了一下可能是问题2的这种情况,然后结果我一波操作之后,这个问题我忘记有没有解决了,碰到这个问题的可以试一下博文提供的解决方法,然后我发现了博文里面的问题1不就是说的是我们上面的问题④吗?嘿嘿.
可能的解决方法如下(最好结合原博文一起看):
1.下载证书:MicrosoftRootCertificateAuthority2011.cer
http://download.microsoft.com/download/2/4/8/248D8A62-FCCD-475C-85E7-6ED59520FC0F/MicrosoftRootCertificateAuthority2011.cer
2.开始→运行→MMC
3.文件→添加删除管理单元 (Ctrl+M)
4.证书→计算机账户(其他的都保持默认,无限下一步)
5.回到窗体,展开:证书→受信任的根证书颁发机构→证书
6.右击展开菜单,所有任务→导入
7.右击展开菜单,所有任务→导入
②回放验证
脚本结束录制后,LR会把你在浏览器进行的操作转为C语言的脚本,会弹出一个有进度条的小窗口,稍等片刻后会出现下面的这个页面,打开左边的脚本代码窗口,然后按书上的步骤点一下“RePlay”回放试一下
回放之后会出现一个页面告诉你有没有回放成功,这里显示的成功或失败指的是这些C语言代码有没有成功执行并不是显示有没有“发帖”成功(好比录制的是“去菜市场买菜”这样一个操作,那么回放也是“去菜市场买菜”,然后告诉你“去菜市场买菜”这个操作有没有完成,并没有告诉你买回来的菜是好的还是坏的)
Ps:①脚本录制成功、回放也显示成功,但是实际上并没有回放成功(论坛上没有回放发出来的新帖子),原因是没有把虚拟机的网络模式设置成“桥接模式”,把虚拟机的网络模式设置成“桥接模式”就OK
②如果出现下面这张错误,是因为设置了使用utf-8解码,但是在创建脚本的生活设置的路径/工作空间路径/浏览器路径里面有中文导致的。
③添加事务函数
事务开始:
lr_start_transaction("事务名");
事务结束:
lr_end_transaction("事务名",LR_AUTO)
④创建控制器场景(Create Controller Scenario)
I:打开菜单“Tools”,点“Create Controller Scenario”
II:设置虚拟用户数量(Number of Vusers)
III:设置监控本机资源(Windows Sources)
将界面底部的标签切换到Run上→在右下方的“Windows Sources”窗口右键→在弹出的菜单中单击“Add Measurements”(添加监控值)→单击“Add”按钮→Name输入“localhost”→一路无脑“OK”
可能会遇到的问题:
①这个提示是说已经存在这个目录了,问确定是否进行覆盖,直接点“YES”就OK
⑤运行场景
⑥生成性能测试报告
打开菜单“Results”→点“Analyze Results”
点YES就OK了
⑦分析性能测试报告
通常用2/5/8的原则来说明用户体验。即如果事务时间在2秒以内是很快,5秒以内是还不错,8以上用户就受不了了。
I:查看平均事务响应时间(Average Transaction Response Time)
点击左边的“Average Transaction Response Time”
II:查看用户负载趋势
点“Running Vuser”
III:查看资源情况图
打开菜单“Graph”→点“Add New Graph”
"System Resources"→"Windows Resources"→点底部的"Open Graph"
流程总结:
1.新建一个脚本和方案(New Script and Solution)
注意:要保证Localtion里不包含中文,最好为
纯英文
2.录制脚本:
①点“Record”(Ctrl+R)
②设置录制参数:
I:HTTP/HTML 级别(Level)选择"HTML-based script"
II:HTML 高级设置(Advanced)里的脚本类型(Script type)选择“只包含显式URL的脚本”(A script containing explicit URLs only)
III:设置“支持字符集”(Support charset):“HTTP 属性”(HTTP Properties)→高级设置(Advanced)→勾选“支持字符集”(Support charset)→选中“UTF-8”
③点“Start Recording”开始录制
④确认安装证书
⑤勾选“不再检查网络”(Don't check internet access again)
⑥如果接下来有申请什么网络、启用脚本(加载项)什么的弹出或提示全部都允许就对了
⑦正式开始录制
3.回放验证:
①点“RePlay”进行回放
②查看回放脚本是否执行成功
③查看回放是否真正执行成功
4.添加事务函数
5.创建控制器场景(Create Controller Scenario)
①设置虚拟用户数
②添加本机资源监控
6.运行场景
7.生成性能测试报告
8.分析性能测试报告
①查看平均事务响应时间
②查看用户负载趋势
③查看资源情况图