性能测试概念及基本流程
LoadRunner的初级部分--三大组件的简单运行
a. 脚本生成器:调代码、脚本的地方
b. 控制台:好比指挥部
c. 结果分析器:比如,每隔3秒钟出一个结果,分析海量的结果,还可以继续分析。
2)LoadRunner的高级部分--三大组件逐个深入掌握。
3、性能测试的高级部分:性能测试过程中,遇到问题(瓶颈),如何查找、定性,进行性能调优。
LR11可以去网上下载破解版,破解2WLicence用户
基本测试流程:
1)创建/编辑脚本
2)运行压力测试
3)分析测试结果
压力激增--瞬时压力:并发压力(性能测试)
系统瘫痪--宕机 (down机了)
3个小时内,网站的浏览次数达到2000万次
他们提供的100次/小时 他们:奥组委
甲方:奥组委 乙方:开发方 第三方:测试团队
浏览量第一小时 800万次 8000000 / 3600 = 2222次/秒
每秒钟从网上提交的门票申请超过20万张
浏览量:PV值,页面的访问量或点击量
三、性能测试的概念:
1、性能测试:模拟真实的生产环境,以各种不同的压力(模拟大量用户)去测试被测系统、去"攻击"测试系统。同时记录下被测系统中 各台 服务器的各种重要资源情况,包括cpu、内存、磁盘和网络等资源。
2、注意:性能测试之前要做好系统备份。
3、性能测试时首先看 性能需求,如果没有需求,这时要根据与客户交流、被测系统的相关资料、以及性能测试工程师的经验,去编写测试计划,进行性能测试。
4、负载测试和压力测试的区别:
(国内混用,国外有差别,笔试时需要注意)
1)共同点都是在测试过程中逐步加压
2)负载测试是在正常范围内测试 Load Testing
(见好就收)
3)压力测试可以在极端范围内测试 Stress Testing
(使劲折腾)
4)举例:一座大桥,桥上写最大载重量的车辆,不超过60吨
但是在桥梁内部建筑资料,最大载重量,不超过70吨
5、性能测试的背景课程:
1)数据库(不夸张的说,60%-90%的性能问题都和数据库有关)
2)操作系统(Linux/Unix)
3)其它:网络协议、防火墙等知识...
性能测试的实现方法:
手动测试:(存在的问题)
测试人员 -> Web Server -> DB Server
问题:
是否有足够的测试资源?测试人员、客户机
如何调度和同步测试用户?比如并发
如何搜索和分析测试结果?
结论:必须使用工具
6、被测系统
SUT (System Under Test)
AUT (Application Under Test)
EUT (Environment Under Test)
就是Web Server和DataBase Server两部分的统称
(Web应用程序 部署其中) 表等资源
四、LoadRunner工作原理:(录制--回放的工作方式)和QTP类似
1、录制时,LoadRunner记录下 客户端和服务器 二者之间的对话。
2、回放时,LoadRunner模拟 真实的客户端 向服务器发起请求,并按照脚本去验证服务器的应答。
补充说明:有时脚本录不下来,自己写脚本,发现测试时通过了,但实际运行时服务器瘫了。
原因:没有模拟真实的客户端效果,接收也出现问题,导致失败。
所以自己写脚本时也要模拟真正的客户端。
LoadRunner的三大组件:(三个火枪手) OALoad工具类似
(触类旁通)
1)虚拟用户脚本生成器(Virtual User Generator)VuGen VUG
功能:录制、编辑、调试测试脚本
2)压力调度控制台 (Controller)
功能:创建场景、运行场景、监控场景、收集测试数据
(场景:就是一个大型的配置文件)
3)压力结果分析器 (Analysis)
功能:把收集到的测试数据以图表的形式展示出来;
生成测试报告。
熟悉AUT: LR自带一个B/S架构的系统 航空订票系统
HP LoadRunner ->Samples ->Web ->
Start Web Server先启动服务器
HP LoadRunner ->Samples ->Web ->
HP Web Tours Application
系统地址:http://127.0.0.1:1080/WebTours/
五、关注AUT,并进行脚本录制
Web Tours 航班订票系统
用户名:jojo
密码:bean
1、使用LR之前,浏览器修改:
Internet选项 -> 设置 -> 选中"每次访问此页时检查"
原因:当脚本更新时,会及时查看到
2、拷贝AUT的网址,准备测试。
注意:测试时关闭原先打开的被测网页。
http://127.0.0.1:1080/WebTours/
或
http://localhost:1080/WebTours/
系统功能说明:
Flights 订票
Itinerary 查看订票路线 看订单
Home 主页
Sign Off 退出
细节:需要删除一些干扰文件(涉及Flights的功能)
D:\oracle\product\10.1.0\db_1\perl\5.6.1\bin
MSWin32-x86 目录删除
D:\oracle\product\10.1.0\db_1\perl\5.6.1\lib
MSWin32-x86 目录删除
案例:录制用户登录脚本
使用LoadRunner的VUG
HP LoadRunner -> Application -> HP Vurtual User Generator
点击New图标 -> New Virtual User -> 默认协议
-> Create 准备录制
填写基本信息:
选择软件架构:Internet Applications (B/S) 默认
Win32 Applications (C/S)
选择浏览器类型:默认IE
URL Address: 被测系统的网址
http://127.0.0.1:1080/WebTours/
或http://localhost:1080/WebTours/
Working directory: LR工作路径 默认 常用工具命令
Record into Action: 录制脚本的位置 默认Action
(vuser_init 初始化 Action vuser_end 结束)
-> OK 自动打开浏览器 AUT,开始录制
关注小操作条 (录制控制 关注数字变化,数字稳定才继续)
-> 输入jojo bean
-> 开始事务 名称login (插入事务) -> OK
-> Login按钮
-> 结束事务 login -> OK
-> 改为vuser_end模式,点击Sign Off 退出
-> 关闭浏览器 -> 点击蓝色按钮 Stop 结束录制
修改字体:Tools -> General Options -> Environment
-> Editor Comic Sans MS 14 Bold 加粗
建议新建目录:D:\work\ (目录名建议用英文名)
新建3个子目录:
script 脚本 ctrl 场景文件 result 结果分析文件
另存为: D:\work\script\day01\login
关注左上角对应的独立的源文件:(脚本的文件组成)
vuser_init 初始化脚本 (类C语言)
Action 最关心的脚本
vuser_end 结束脚本
globals.h 头文件 (包含LR函数声明)
3、在使用LoadRunner录制之前,一定要手工执行待测的测试点。
比如:登录系统、购买机票
4、录制时:
一般将登录的动作录制到vuser_init中;
关心的测试点(如订购机票、查询路线)录制在Action中;
而将退出的动作录制到vuser_end代码中。
原因:Action比较强大,具备其它部分所没有的功能
比如:参与迭代、设置并发
5、录制时注意:创建新脚本,要从New开始
6、如果只是录制登录脚本,则录在Action中即可
7、lr_think_time(68); 表示该处有68秒时间没有对服务器提交请求
思考时间
lr_start_transaction("login"); 开始login事务 lr_end_transaction("login",LR_AUTO); 结束login事务
web_submit_form(...); 发送表单请求
web_url(..); 发送页面请求
录制好、调试好脚本,开始运行 Run (VUG)
想看到运行结果:
Tools -> General Options -> Replay 回放
-> After Replay 选择 Visual test results 可视化测试结果
再回放,会显示结果报告。
注意:结果的对勾,不一定准确,还需要在脚本中添加一些内容(比如检查点),才完整。
如果想看回放图形效果:(用处不大)
Tools -> General Options -> Display
-> Show run-time viewer during re] 打钩 (取消打钩)
虚拟用户:Virtual User 简称VU
在场景中,LoadRunner使用VUser代替实际用户。
一个场景中,可以包含几十个、几百甚至几千个Vuser.
使用Vuser被被测系统施加压力。
原理:每一个虚拟用户,对应一个进程或线程
常用线程模式,消耗资源比进程少。一般PC机模拟2000个VU
进程 和 线程的区别?
1)进程比较消耗系统资源,进程间通信比较麻烦
2)线程比较节约系统资源,线程间通信比较容易
VUG: 只能产生一个用户的压力。
8、如果实现 多用户的测试,则必须打开 控制台Controller。
(控制台:是指挥部,可以模拟千军万马)
事务:Transaction 为了记录事务响应时间
场景:Scenario 法语外译词
通过控制台来创建场景,相关的场景设置
9、录制结束后,保存--回放(编译、运行)
目标:确保脚本执行正常
10、编译:检查语法错误。 Compile图标
能检查语法错误,但不能检查逻辑错误
11、何时需要插入事务?
关心那段操作,就将此过程作为一个事务。比如只关心订票,就可以不考虑登录。
目的:LR后续会统计事务的响应时间。
12、LoadRunner录制时,Action的选择只能从前往后选:
即 vuser_init -> Action -> vuser_end
否则,必须从New开始,重新录制。
13、打开控制台时,可以关闭掉VUG。因为脚本保存好后,就可供控制台使用。关闭不必要的软件让测试机的性能好些。
LoadRunner基本测试流程:
1)指定性能测试计划(部分) Word
2)创建测试脚本
3)编辑、运行测试脚本
4)创建场景
5)运行、监控场景,收集数据
6)生成测试报告,分析测试结果