本来想上传文件的,上传半天没反应,只有这样了,图片不知道能显示不。
上午
学到2012.1.13 七天课
第一天(入门)二、三、四天(VUGEN脚本)
五天(Controller)六天(Analyse分析) 七天(流程,报告、其它)
三到五年,才可以成为高级性能测试工程师 七天学完是初中级测试工程师
性能测试工程师=测试工程师+系统管理员 功能测试工程师=开发(写脚本、代码)
测试团队:项目团队1 项目团队2 项目团队3 自动化团队(应该是做开发出身的,如果是做测试出身的,自动化不会做好,他们主要写框架,与技术有关) 性能测试团队
学测试的人,会进入项目团队(去写脚本,与业务有关)
性能测试团队(辅助于功能测试团队)
上课内容:1、什么是性能测试2、性能测试评估指标3、性能测试工具4、性能测试原理
5、LoadRunner性能测试解决方案6、LoadRunner的安装与部署
奥运定票系统崩溃:1小时,800万次 1分钟13万次 2300/秒
Alexa排名流量排名
性能测试正常设计是容量的3倍 业务估计(经验不够)不足,是性能测试的最大失败
网站要考虑限流的问题、分配访问(网管应该想到的技术问题)
效率特性:时间特性(执行某一功能的响应时间和吞吐率的特性)、资源利用特性(资源利用率)
1、什么是性能测试:在一定负载的情况下,被测系统的响应时间、吞吐率、资源利用率是否满足性能需求
什么是负载:前提是因被测系统不同而议。人在精神、体力上均有负载的概念。负载是在评价一个强度的问题。
测浏览器的性能:能打开多少个Table,看负载
测人人网的性能:点击量、登录、搜索(业务的不同方面)……看负载
计算机:多运行进程,产生负载
压力—>强度(看业务的不同方面,有可能是请求、进程或Table等)
2、性能测试评估指标:响应时间、吞吐率、资源利用率
响应时间:不是一个系统的响应时间是一个综合的响应时间(包括登录、搜索等)
a.业务b.用户角度、开发角度(测试时只关注了开发,有可能用户访问时会很慢,不同网络运营商访问)
LoadRunner可以模拟带宽,带宽限制
用ADSK账号登录服务器模拟 开发感受t2+t3的响应时间 用户能感受的是t1+t2+t3的响应时间
网管应做相应的处理网通访问电信电信访问网通等看响应时间
吞吐量(概念有分歧):单位时间内完成工作的度量
资源:OS(操作系统资源):CPU、内存、磁盘IO、交换空间(虚拟内存)
服务器资源:MysqlTomcat(连接数、服务器的内存使用情况)
3、性能测试工具:WAS(Microsoft)、Jmeter(open source)、ab(apache)、LoadRunner(HP)、QAload、Webload
开发比较喜欢用Jmeter和ab专业的测试常用LoadRunner
如何选择性能工具:被测系统特点(业务)、产生的并发数(负载)、产生的协议、价格
概念的区别: 在线用户和并发用户比较容易混淆
性能测试的说法(用来拼品牌的) |
互联网的说法 |
系统用户 |
注册用户、数据库内的用户 |
在线用户 |
活动用户/只要用户登录且没有退出 不做任何操作时,对服务器没有负载,HTTP请求登录完成后,服务器会自动断开连接,所以对服务器没有负载。占用内存,但不占用连接数 |
并发用户 |
某一时刻,同时访问系统的用户数 |
因(负载)果(指标) 因(并发用户)果(负载)
Http协议Https(加密的协议)协议:双方共同遵守的约定 B/S:HTTP HTTPS C/S:TCP/IP UDP
HttpWatch工具:网络录制工具(抓包) 不支持回放 工具不是目的,而是手段
Http协议:
点击量:用户一次点击过程中,真正的向服务器发送的产生的请求数是点击量,不等于用户的请求数,不是用户点击一下的量
下午
4、性能测试原理:关心协议(请求包、响应包、返回码(500、401、404……))用不用浏览器没有关系
返回码:2XX成功 200请求成功(建立连接、发请求、接收请求、断开)
3XX重定向 304(请求头有个If-Modified-Since截止到某一日期内文件没有被修改,服务器不做接收请求 建立连接、发请求、断开)
重定向:本来应该在服务器取数据,但可从客户端的缓存中读取
4XX客户端错误 404无法找到指定位置的资源
5XX 500内部服务器错误
Referer:图片的请求包多出这一条,Referer代表本请求(图片)在哪个页面发出的,防止“盗链”用的
自动化工具:做功能测试,记录对象的用户名或密码的位置和操作过程,顺序执行
性能测试工具:只要协议相通,关心协议内容,只关心传过来的用户名和密码
性能测试工作原理:1、录制(协议头) 2、回放(协议内容)
5、LoadRunner性能测试解决方案
Virtual User Generator录制并回发单个进程
Controller告诉Generator如何工作 程序、脚本、协议
Controller的工作内容:1、找压力测试机(压力机会模拟虚拟用户工作)
2、分配工作(压力机高度,定义并发数)
3、定时间(压力机运行的时间)
4、脚本(VUGEN虚拟用户生成器)
5、调度(让压力机干活—>压力机运行脚本—>对SUT(被测系统)产生负载—>
被测系统内装的monitor(监控器)—>把内容发回到Controller—>DB—>Analysis)
1、找演员(找压力机) 2、找剧本(找VUGEN建立关系) 3、演员在什么时候演什么剧本(场景搭建)
Analysis结果分析器(图表和报表比较难分析出问题,如果看不懂图,就相当于没做性能测试)
如果协议不一样,可以导致脚本和结果分析器不同,性能指标会不同
Scenario场景:Controller的工作 场景设计非常关键
6、LoadRunner的安装与部署
四个组件:Controller、VuGen、Analysis、Load Generator
Agent负责