测试方法主要包括:性能测试、配置测试、并发测试、负载测试、压力测试、稳定性测试。
性能测试:测试环境和测试目标确定的情况下,测试系统是否达到宣称的能力;
配置测试:系统具有一定的测试基础时,通过修改环境配置,例如服务器参数等,对比之前的测试结果进行优化;
并发测试:模拟多个用户并发使用系统,测试系统是否存在死锁、内存泄漏等问题。
负载测试:逐渐向系统添加压力,观察系统资源消耗情况,知道某一项资源达到极限。一般用于度量系统的性能容量,寻找系统瓶颈为系统调优提供数据;
压力测试:系统承受一定的压力的情况下,测试系统是否会出现错误。系统压力包括CPU、内存、磁盘、网络等方面的压力,施加压力的方法包括利用工具占用系统资源、增加并发量等;
稳定性测试:系统承受一定压力的情况下,运行一段时间,测试系统是否平稳运行;

性能测试需要借助测试工具,毕竟完全依靠手工进行性能测试需要付出很大的代价,不仅是人力成本和经济成本,还有时间成本。测试工具的使用不仅能够提高测试效率,还可以弥补手动测试难以捕获的一些问题。

Loadrunner简介

Loadrunner是HP公司提供的一款性能测试工具,通过模拟成千上万个用户实施并发操作,测试系统的性能,并且提供详细的测试结果分析,协助用户查找问题。Loadrunner的优势在于节约了人力成本和时间成功,纯人工进行并发测试,不仅需要大量的人手和机器,还需要测试人员进行充分的沟通,默契的进行操作。使用Loadrunner就可以一个人模拟上万个用户,压缩了成本,也提高了效率。

Loadrunner的主要组件包括:

  • Virtual User Generator:捕捉用户业务流程,并且自动生成脚本;
  • Controller:设计场景,主要包括设置不同脚本的虚拟用户数量、迭代次数、执行时间等;
  • Load Generator:模拟用户向服务器发送请求;
  • Analysis:分析测试结果,辅助测试人员进行测试分析;

Loadrunner11安装

初次接触的是Loadrunner12版本,相对而言比11版本的界面更美观,可用性更强,对高版本浏览器的兼容性也更好。奈何目前还没有破解版,vuser最大支持50,于并发测试而言是绝对的硬伤。于是转战Loadrunner11。网上Loadrunner11安装破解教程很齐全,以下便是参照网上的教程安装的记录。

1、下载安装软件

https://pan.baidu.com/s/1i51a3HV

2、解压下载好的ios文件

3、双击setup.exe,按照提示一步一步安装

4、下载破解文件

http://pan.baidu.com/s/1eS7SmD8

5、将“lm70.dll”和“mlr5lprg.dll”文件复制到loadrunner安装目录下的bin目录下

6、点击“CONFUGURATION—>loadrunner license”,点击“New License”,输入“AEAMAUIK-YAFEKEKJJKEEA-BCJGI”,可能会遇到报错“License security violation,operation is not allowed..”。

需要点击破解文件中的deletelicense.exe,随后重新执行上述步骤

7、添加new license,输入AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB,完成!

Loadrunner11录制脚本

1、打开loadrunner11,点击“Create/Edit Script”启动Virtual User Generator。点击File--new,创建脚本文件,选择Web(HTTP/HTML)协议。
[图片上传失败...(image-991c3e-1523440883813)]
2、Loadrunner默认使用IE浏览器,在此我选用火狐浏览器,但是由于Loadrunner11对浏览器版本的要求较为严苛,因此需要下载安装火狐24版本。(下载链接:http://ftp.mozilla.org/pub/firefox/releases/)

3、以loadrunner自带的订票系统为例,Program to record填写火狐浏览器的路径,Program arguments填测试系统的URL,working direction为文件保存路径,自定义即可。填写完成后点击OK,火狐浏览器自动启动并打开订票系统。

4、首先录制注册用户,按照正常的注册流程,填写用户信息后,登出,并关闭浏览器。点击stop按钮,脚本生成后保存。

5、生成的脚本只能注册某个用户,不具备通用性,为了使脚本更具通用性,我们需要将某些变量参数化。

参数

1、每个用户的用户名是不一样的,且不能重复的。首先用参数替换用户名,右击用户名value--点击Replace with a parameter,输入参数名称“username”--点击properties。

2、参数类型有很多种,在此用户名参数选择File类型,点击Create Table创建文件。

3、文件创建好了,点击Edit with Notepad,使用excel下拉创建20个用户复制到username.dat中,保存后可以看见这20个用户。File数据库文件默认只看到100个值,如果想使用更多值,请修改“安装目录/config/vugen.ini”中的[ParamTable]属性下的MaxVisibleLines。

Select column的方式默认选择“By number”,并且number为1,即选择第一列参数。当然也可以选择By name,选择变量参数名称即可。“Select next row ”设置参数取值方式,由于用户名不能重复在此取值方式选择Unique。

  • Sequence:按照顺序依次取值;
  • Random:随机取值;
  • Unique:唯一取值,为每个虚拟用户分配一条唯一的数据;
  • Same line as ***: 当多个参数时,取某一个参数的同一行;

"Update value on"设置参数更新周期,主要有以下三种更新周期,在此选择每次迭代更新。

  • Each iteration :每次迭代时更新参数的值 ;
  • Each occurrence :每次使用该参数时更新参数的值;
  • Once :执行脚本只取一次值,中途不更新参数的值;

当选择取值方式为Unique时,需要额外设置“When out of value”和“Allocate vuser values in the controller”。其中“When out of value”设置dat文件中的值个数不够时的处理方式,主要有以下几种方式,我们选择“”

  • Abort Vuser:放弃剩下虚拟用户,不再取值;
  • Continue in a cyclic manner: 以循环的方式,重新从开头取值;
  • Continue with last value:当dat文件中的值取完后,持续取最后一个值 ;

“Allocate vuser values in the controller”:设置在controller中并发迭代执行脚本时,为每个vuser分配的参数块大小,选择“Automatically allocate block size”,系统会以迭代次数作为参数块大小,为每个vuser分配参数。例如dat文件中有50个username,当迭代次数为5,vuser个数为8时,会将Test1Test5分配给vuser1,Test6Test10分配给vuser2,以此类推。当dat文件中的值不足时,例如迭代次数为6,vuser个数为9时,最后一个vuser只分配到了2个值,值不足时会根据“When out of value”设置的方式处理,但是仅在块内取值,即只能循环取这两个值。“Allocate ** values for each Vuser”顾名思义就是手动设置参数块大小。

“Automatically allocate block size”方式的优点是方便,不需要根据场景反复编辑脚脚本,缺点就是dat文件中的值个数不够时,vuser分配不到值会报错。而手动设置的优点就是人为控制出错较少,但是每次都需要修改脚本,比较麻烦。
4、双击password的value,点击Replace with a parameter,输入参数名称“passwd”--点击properties,依旧选择File类型参数,点击Browse选择之前创建的文件username.dat,点击“Add column”添加列“passwd”。与之前方式一致,输入50个password值,取值方式设置为“Same line as username”,确保用户名与密码一一对应。

5、密码确认这一栏输入的值需要与密码保持一致,双击passwordConfirm的value,选择“use existing parameter”--passwd。

6、firstname、lastname等其他变量安照类似的方式设置即可。执行脚本,在loadrunner11安装目录\WebTours\MercuryWebTours\users目录下可以看见生成的用户信息。下面利用controller批量注册这20个用户。

插入事物

1、插入事物是为了更好的衡量服务器的性能,可以在录制脚本的时候,在某个操作前插入事务开始点,该操作完成后插入事务结束点。当然,录制好的脚本也可以插入事务,以本脚本为例,将注册请求定义为一个事务。在“web_submit_data("login.pl_2" ”函数前插入事务开始点,右击鼠标——Insert——Start Transaction,输入事务名称register。

用相同方式在函数下方插入事务结束点,右击鼠标——Insert——End Transaction,输入事务名称register。

2、点击“Run Load Tests”启动controller,设置新场景,选择需要使用的脚本,可以是一个或者多个,然后点击ok。

3、点击”场景“——Load Generators,添加Load Generators,在此输入localhost表明连接本地的Load Generators。点击connect,连接Load Generators,如果连接不上则需要进一步定位原因。

也可以直接在脚本列表中直接下拉添加Load Generators。因为当前只有一个脚本,vuser比例默认为100%,当同时执行多个脚本时,可以设置每个脚本分配的vuser比例。 4、脚本设置好后开始设置运行场景,双击Initialize设置初始化用户的方式。

双击”Start Vusers“设置vuser个数和启动方式。

双击Duration设置场景运行周期,选择”Run until completion“则当场景运行完成后同时停止所有vuser。如果选择运行一段时间,则需要设置停止vuser的方式,与设置启动vuser方式类似。 

5、点击”start scenario“运行场景,在Run可以看见vuser的状态,以及场景运行过程中的报错信息。场景运行结束后,可以在下方看见一些数据,以便了解被测系统的性能。如下图所示,可以看见事务“register”的响应时间。

6、点击Result——Analyze Results,将会启动Analysis自动生成本次场景执行相关的测试报告。

Loadrunner12安装

1、下载安装软件
百度网盘 - 共享邀请链接

2、右键点击HP_LoadRunner_12.02_Community_Edition_T7177-15059.exe 安装程序,打开窗口中选择【以管理员身份运行】

3、会验证电脑是否含有软件安装运行的必备组件,缺少组件时,会弹出窗口显示许安装的组件。点击【确定】按钮将自动安装所需组件;

4、等待组件安装完成后,就弹出如下安装窗口,点击【下一步】进行loadrunner安装。选择安装路径,安装路径不能含有中文字符。

5、弹出如下界面时,若无指定代理使用的证书,则去掉勾选,点击【下一步】,安装完成。

6、安装中文包,右键点击安装包“HP_LoadRunner_12.02_Community_Edition_Language_Packs_T7177-15062.exe”,选择【以管理员身份运行】,注意安装路径,下述步骤会用到。

7、到第6步的安装路径下的DVD目录下,点击Setup,打开安装目录,点击【语言】,依次打开该目录下的文件【Chinese-Simplified】→【LoadRunner】→【LR_03457】,点击【LR_03457】将进行安装。

8、经测,Loadrunner12支持58版本的chrome浏览器(安装包中已提供,如有需要请自行下载)

9、使用loadrunner录制脚本需要搭配xx-net使用。启动xx-net后,新建脚本,点击【运行时设置】配置loadrunner代理如下:

10、如下图所示,录制脚本过程中如果出现中文乱码,并提示27995,则需要修改录制选项配置。 点击【录制】——【录制选项】,配置如下:

自动添加关联

Loadrunner11

1、脚本录制好后,快捷键ctrl+F8,扫描关联。
2、点击按钮添加关联。
3、ctrl+h 查找和替换,将脚本中所有对应的动态值都替换为该关联参数。
4、注释脚本中的部分内容,ctrl+alt+c 为注释,ctrl+alt+u 为取消注释。

Loadrunner12

1、脚本录制好后,点击【设计工作室】,扫描关联。

2、点击【替换/找到】一栏,查看参数所在位置,以及参数的含义。根据参数含义,点击【关联参数】一栏,给参数重命名。
3、点击【关联】,则自动添加关联函数,并且自动替换【替换/找到】一栏中展示的所有动态值。

手动添加关联

Loadrunner11

1、点击工具栏中的【tree】进入树形视图,点击左侧函数列表中的函数,查看函数运行结果快照,观察目标函数response中动态值的格式,确保根据左右边界值能够筛选出唯一动态值。
2、在目标函数前插入web_reg_save_param_ex函数,输入左右边界值,需要注意的是边界值中含有“ {等符号时,需要在前面加上转义符\。
3、ctrl+h搜索出目标动态值,并用关联函数进行替换。
4、当边界值筛选出来的是多个动态值时,可以通过关联函数获取所有符合条件的动态值。插入函数web_reg_save_param_ex,填入边界值后,设置ordinal=all,将会把所有符合条件的值存储到一个数组中。随后可以直接使用数组中的某个动态值,在关联函数名后加”_序号“即可,例如{deviceId_2}则表示取出筛选到第二个动态值,并且可以用下列函数将该动态值打印出来。
lr_output_message("%s",lr_eval_string("{deviceId_2}"));

Loadrunner12

1、在脚本中查看目标函数,在目标函数旁右击鼠标,选择【显示快照】。查看下方窗口的response内容。loadrunner12没有树形结构,但是有快照布局模式,效果差不多。
2、插入web_reg_save_param_ex函数,输入边界值。需要注意的时,loadrunner12不需要手动添加\进行转义,会自动添加转义符。
3、ctrl+h搜索出目标动态值,并用关联函数进行替换。
4、筛选多个动态值的方法与loadrunner11相同。

从数据库导出初始数据

1、很多时候loadrunner中的参数可以从数据库中查询到,当参数数据量比较大时,逐一复制到参数文件中比较麻烦,可从数据库中直接导出数据。

2、首先需要安装mysql-connector-odbc-3.51.30-winx64(安装包中已提供,如有需要请自行下载),安装方法与一般的Windows软件类似。

3、右击参数,编辑【参数属性】,参数类型选择【File】,点击【数据导向】打开数据库查询导向窗口。

4、选择【手动指定SQL语句】,点击【下一步】,点击右上角【创建】

5、点击【机器数据源】——【新建】

6、Data Source Name自定义,server是数据库所在宿主机IP,user、password是连接数据库的用户名和密码,database指定连接的数据库名称。

7、点击【connect option】,填写连接数据库的端口

8、点击TEST测试是否连接成功,成功后点击ok。

9、选择新建好的数据源,点击【确定】,后续需要再导出数据,只需要选择已创建好的数据源点击【确定】连接数据库即可。连接成功后会自动生成连接字符串。

10、输入查询的SQL语句,点击完成,则可导出数据。

好了,今天的分享就到这里,有问题的留个言,别忘了一键三连,下次我们还会再见!

我是黄啊码,码字的码,退。。。退。。。退。。。朝!

【黄啊码】软件测试之Loadrunner教程相关推荐

  1. 抖音最近很火的游戏直播:挤地铁教程+源码+软件下载

    抖音最近很火的游戏直播:挤地铁教程+源码+软件 先上车先吃肉,卡好后带货,卖号,引私域,接星途广告,接小程序广告,带小游戏赚收益均可 源码下载:抖音最近很火的游戏直播:挤地铁教程+源码+软件下载-小程 ...

  2. 【黄啊码】老师,高考后我想选软件开发相关专业,你觉得选哪个方向好?高考志愿怎么填报?

    今天恰逢是高考的时间,昨天有个同学问我:老师,高考后我想选软件开发相关专业,你觉得选哪个方向好?高考志愿怎么填报?那么今天黄啊码就先来跟大家科普一下软件工程专业及其就业前景. 软件工程专业包含: 软件 ...

  3. 【黄啊码】StableDiffusion教程从入门到搬砖

    上节课教大家怎么免费使用GPU资源,今天就正式带大家进入stable diffusion的教程,废话不多说,开干: 目录 正面提示词: 我们来学习关于权重的知识点: 权重语法: 分割符 组合符 连接符 ...

  4. 软件测试密码修改教程,软件测试之用户注册和密码修改测试用例设计

    软件测试之用户注册和密码修改测试用例设计 发表于:2009-03-05来源:作者:点击数: 软件测试技术导航 软件测试技术 : 软件测试工程师 测试用例 功能测试 测试管理 缺陷管理 手机测试 自动测 ...

  5. 全程软件测试之测试需求分析与计划

    全程软件测试之测试需求分析与计划 在项目启动之后,就要着手软件项目的计划,包括软件测试计划.软件测试计划是整个开发计划的组成部分,同时,它又依赖于软件组织过程.项目的总体计划.质量文化和方针.在测试计 ...

  6. uniapp中qrcode生成二维码后传的参数不见了_阿虚教你制作动态二维码,超详细教程!

    这篇教程很早之前就答应几个粉丝要写,拖的有点久了. 内容比较多,先上个目录 阿虚的教程会迟到,但永远不会缺席.hahahahhaha... 一. 先说一下今天要教的内容 ʕ•̫͡•ོʔ•̫͡•ཻʕ•̫ ...

  7. 某音最近很火的挤地铁游戏直播技术:挤地铁直播+源码+软件下载+视频教程下载-亲测可用

    这种玩法很有趣,只要你送礼物,就能占据直播间C位,你在直播间的发言也会直接显示.就像他们说得那样,花几百块钱就能享受到在酒吧几万的虚荣效果.所以,备受年轻人之喜爱. 由于是这种玩法平台的新产物,直播间 ...

  8. 软件测试之独步武林系列(一)

    软件测试之独步武林系列(一) 开篇 风吹过,卷起了漫天红叶. 剑气袭人,天地间充满了凄凉肃杀之意... 败了,终究还是败了,留给小明的只剩下身后的那万丈深渊. ------.. 最后的一点枫叶碎片已落 ...

  9. 【源码+图片素材+详细教程】Java游戏开发_Java开发经典游戏飞翔的小鸟_飞扬的小鸟_Java游戏项目Flappy Bird像素鸟游戏_Java课程设计项目

    课程目标: 1.通过本课程的学习巩固Java的相关基础知识,例如循环判断,数组和集合的使用,对象的继承,接口的实现,窗口的创建,事件监听,图形绘制. 2.完成小鸟的移动,管道自动生成.碰撞死亡,计分系 ...

  10. X Lossless Decoder for mac(XLD无损音频转码软件)

    X Lossless Decoder(也称为XLD)是一款简单易用的无损音频转码软件,能够解码/转换/播放各种"无损"音频文件.解码时,支持的音频文件可以使用cue表分割成一些轨道 ...

最新文章

  1. 25 navigator对象
  2. 记一次安装多版本php的四个雷区,你踩着了吗
  3. 安卓手机网页打开淘宝总是弹出应用市场
  4. python分位数回归模型_如何理解分位数回归风险价值 (VaR) 模型?
  5. 手动添加ubuntu服务
  6. 学习笔记(07):Python网络编程并发编程-客户端与服务端代码bug修复
  7. Hadoop集群配置搭建
  8. weightedrandomSamplers(2)
  9. mysql数据库电脑配置_教你怎样正确配置MySQL数据库SQL Mail -电脑资料
  10. windows上dmg转换cdr_cdr中常见问题及其解决方案
  11. OpenGL超级宝典 渲染管线(二)
  12. 当不知轴承型号时如何寻找轴承故障频率_趣说滚动轴承的故障诊断
  13. 目标检测(Object Detection)
  14. CAD的dwg格式转换为PDF
  15. 通过PHP使用Google Translate API
  16. 【Unity3D Shader编程】之八 Unity5新版Shader模板源码解析径向模糊屏幕特效的实现
  17. 春节期间,“熊小孩”闯祸要赔偿怎么办?
  18. 这7个OKPlus的新功能,知道后做PPT的效率直接起飞!
  19. 这里有一个url=https://www/.baidu.com/s?id=111name=yourname,写一个函数获取query的参数和值存放在一个对象...
  20. 六行python代码的爱心曲线_6行python代码的爱心曲线

热门文章

  1. Java中super()的用法。主类和子类的继承关系。(2)
  2. 集合的相关概念(开闭、有界无界、内点边界点等)
  3. Unity碰撞和触发
  4. cuda驱动更新方法之一:
  5. bootstrap批量删除操作!
  6. 推荐8个不错的视频自动加字幕工具
  7. php读取 rinex,用Pandas读取GPS RINEX数据
  8. 佛山ABB服务器维修,佛山南海ABB软启动器报故障服务点
  9. 分析易语言多久可以学会呢.易语言好学吗
  10. Report Machine使用方法