一、初步概念
1、功能测试:测试产品的功能是否达到要求
2、性能测试:测试产品的性能是否达到要求。(性能的要求高于功能的要求)
市场招聘的需求主要有两方面:
A、功能测试(手工、自动化)
B、性能测试(自能通过工具)待遇高于功能自动化,要求比功能高,比如需要查找产品慢的原因:网络、服务器、中间件、数据库等层面问题
二、性能测试的课程安排:
1、性能测试的基本概念 ---- 性能测试概念(1天)
对性能测试要求比较高的行业:通讯、樱花、金融、证券、保险、百度、谷歌等系统
对性能要求比较低的:OA办公自动化
2、性能测试的工具部分-- LoadRunner (全球至少一半以上的性能,使用LoadRunner)
1) LoadRunner的初级部分 -- 三大组件的简单运行
a、脚本生成器:调代码、脚本的地方
b、控制台:好比指挥部
c、结果分析器:比如,每隔三秒钟出一个结果,分析海量的结果,还可以继续的分析。
2) LoadRunner的高级部分 -- 三大组件逐个深入掌握。
3)性能测试的高级部分 :性能测试工程中,遇到问题(瓶颈),如何查找、定性,进行性能调优。
LR HP官网下载 大概4G 免费 问题:用户数有限 单用户等
多个用户,需要买Licence需要注册
基本测试流程:
1)创建/编辑脚本
2)运行压力测试
3)分析测试结果
从奥运门票说起~
官方新闻如下:10月30日,北京奥组委想境内公众启动第二阶段奥运会门票预售。然而,为让更多的公众实现奥运梦想
的“先到先得,售完为止“的销售政策适得其反,公众纷纷抢在第一时间订票,致使票务官网压力激增,...... 导致系统瘫痪。
从上午9点开始售票到中午12点,3个小时内,票务网站被浏览次数达到2000万此。这雨他们提供的100万次/小时流量
相差甚远。
信息提取: 压力激增 ---- 瞬时压力:并发压力(性能测试)
系统瘫痪 ---- 宕机(down机了)
3个小时内,网站的流量次数达到2000万次
他们提供的100次/小时 他们:奥组委
甲方:奥组委 乙方:开发方 第三方:测试团队
报道~
从今天上午的情况看,公众购买门票的热情极其高涨。有些群众很早就来到中国银行排队等候;官方票务网站的浏览量在第一小时
就达到800万次,每秒钟从网上提交的门票申请超过20万张;票务呼叫中心热线从9点到10点的呼入量超过了200万人次。
信息提取: 浏览量第一小时 800万次 8000000/3600 = 2222次/秒
每秒钟从网上提交的门票申请超过20万张
浏览量(PV, Page View) :即页面访问量或点击量,用户每次刷新即被计算一次。
客户端 服务器
北京 ----------------> 上海 网络延迟0.2 每秒钟差了0.2 *20万张 = 4万张
上海 -----------------> 上海
项目经理经常安排次测试工程师进行下面的工作:
---- 测试系统的最大并发用户数
---- 测试系统8小时的最大业务吞吐量
---- 测试系统的稳定性和健壮性
---- 测试系统在数据达到100万条记录时的性能
---- 测试系统的核心事物相应时间是否满足用户的需求
三、性能测试的概念:
1、性能测试:模拟真实的生产环境,以各种不同的压力(模拟大量用户)去测试被测系统,去”攻击“测试系统。同时
记录下被测系统中各台服务器的各种重要资源情况,包括cpu、内存、磁盘和网络等资源。
2、注意:性能测试之前要做好系统备份。
3、性能测试时首先看性能需求,如果没有需求,这时要根据与客户交流、被测系统的相关资料、以及性能测试工程师的
经验,去编写测试计划,进行测试。
4、负载测试和压力测试的区别:
(国内混用,国外有差别,笔试时需要注意)
1)负载测试是在正常的范围内测试(也是逐步加压)
2)压力测试可以在极端的范围内测试
负载测试:是通过逐步增加系统负载,测试系统性能的变化,最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。
压力测试 :逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获的系统能提供的最大服务级别的测试。
举例:一座大桥,桥身上写最大载重车辆,不能超过60吨(负载测试)。但是在桥梁的内部资料里面规定最大载重车辆,不能超过70吨(压力测试)。
5、性能测试的背景课程:
1)数据库 (不夸张的说,60%-90%的性能问题和数据库有关)
2)操作系统(Unix、Linux)
3 )其他:网络协议、防火墙等知识.....
6、影响系统性能的主要因素:
硬件 - cpu、内存、硬盘、网卡及其他网络设备
操作系统
网络
中间件、web服务器
数据库服务器
客户端
编程语言、程序实现方法、算法
6、被测系统:
SUT(System Under Test)
AUT(Application Under Test)
EUT(Environment Under Test)
就是WebServer 和DB Server 两部分的统称。
进程和线程的区别:线程是由进程分出的,让更多的任务同时执行。
每个虚拟用户就是一个线程,线程比较省资源
四、LoadRunner的工作原理:(录制--回放)和QTP类似
1、录制时,loadRunner记录下客户端和服务器二者之间的对话。
2、回放时,LoadRunner模拟真实的客户端向服务器发起请求,并按照脚本去验证服务器的应答。
说明:有时脚本录不下来,自己写脚本,发现测试通过了,但实际运行是服务器瘫了。
原因:没有模拟真的是客户端相关,接收出现问题,导致失败。所以自己写脚本也要模拟真实的客户端。
LoadRunner的三大组件:(三个火枪手) QAload工具类似
1)虚拟用户脚本生成器(Virtual User Generator) VUG
功能:录制、编辑测试脚本
2)压力调度控制台(Controller)
功能:创建场景、运行场景、监控场景、收集测试数据
(场景:就是一个大型的配置文件)
3)压力结果分析器(Analysis)
功能:把收集到的测试数据以图表的形式展示出来,生成测试报告。
熟悉AUT:LR自带的一个B/S架构的系统
HP LoadRunner -> Sample ->Web -> Start Web Server 先启动服务器
HP LoadRunner ->Sample ->Web ->Hp WebTour打开应用
五、关注AUT,进行脚本的录制
Web tours 航班订票系统
用户名:jojo
密码:bean
注意:(浏览器指定使用IE)
1、使用LR之前,浏览器配置修改:Internet 选项 ->设置 ->选中“每次访问此页时检查”。
原因:当脚本更新时,会及时查看到
2、拷贝AUT的网址,准备测试(测试时关闭被测网址网页)
http://127.0.0.1:1080/WebTours/
功能:
Flights 订票
Itinerary 看到订票路线 订单
Home 主界面
Sign Off 退出
录制脚本:使用VUG
HP LoadRunner ->Application ->HP Vurtual User Generator 打开
案例:录制用户的登陆脚本
点击New图标 -> New Virtual User ->默认协议 ->Create 开始录制->填入基本信息点击ok ->自动打开浏览器,开始录制
填写基本信息:
Application Type 选择软件的架构:B/S(Interner application) 或 C/S(Win32 application)
Program to record 选择浏览器类型 -> 默认IE
URL Address: 被测系统的网址
Working directory: LR工作路径 默认
Record into Action: 录制脚本的位置 默认Action(vuser_init 初始化 Action vuser_end 结束)
关注小操作条(录制控制功能)
--> 输入jojo bean
--> 开始事物 名称login (插入事物) -> OK
--> Login 按钮 登陆
--> 结束事物 login -> OK
--> 改为vuser_end模式,点击Sing Off 退出
--> 关闭浏览器 -> 点击蓝色的Stop键结束录制
注意:当LR 的脚本运行得出的result中全部为pass时,不一定证明脚本正确。因为lr只是在网络层面上验证了服务器收到了客户端发送的数据包
并且返回,但是,返回的应答中数据是否正确(应答页面是否正确)没有验证。