性能测试基础---测试入门基础

·性能测试技术
一般来说,性能测试技术可以分为三类:
·用户行为模拟:通过性能测试工具,在协议级别模拟用户行为(用户行为所对应的请求包)。对于用户行为模拟,我们又得注意几件事情:
·不同用户的不同请求。
我们要做到的是:逻辑相同,数据不同。
实现的技术手段--参数化。

·处理请求之间的依赖。
实现的技术手段--关联。

·模拟用户的延迟和并发。
实现的技术手段--思考时间、集合点。

·指标监控:
·响应时间:
·吞吐量:
一般来说,响应时间和吞吐量指标的监控都是应该由性能测试工具自身来完成。
通常就会用到以下技术手段--事务、检查点。

·资源利用率:
一般是借助第三方工具完成,尽量不用集成到性能测试工具中。

·性能调优:
调优是一个团队的事情,而不是某一个人的事情,调优是建立在正确的测试、足够的数据和分析的基础上。


·性能测试工具:目前主流的是Loadrunner(简称LR)和JMeter。
工具的对比:
Loadrunner jmeter
功能 优 优-
成本 商业收费(几十万RMB/年)开源
可用性 良好 良
性能 优 良
扩展性 可以二次开发 基于java,可以任意修改。
但是受限于C库。


·Loadrunner的构成:通常来说,Loadrunner的核心组件有四个:
·Vugen:virtual Users Generator、虚拟用户生成器,是LR中用来录制、生成、编辑、调试脚本用的组件。
LR认为一个脚本就是一个虚拟用户的行为模板。以此为基础,就可以让很多很多的虚拟用户去运行脚本,从而达到多用户的行为。
PS:在Vugen中,永远只有一个虚拟用户,要实现多个虚拟用户,需要将脚本放到Controller组件。

·Controller:控制台,是LR中用来实现场景、运行场景、实时监控、集成监控等功能的。
场景:场景是依赖于脚本,是用来实现多用户运行脚本的效果。


·Analysis:分析器,是LR提供的一个用于测试结果的整理、出具初步的性能测试报告和图表,并且提供了大量的分析选项,帮助用户去完成最后的分析和定位工作。

·Load Generator:负载生成器。是LR用来真正实现多个虚拟用户的核心组件。

PS:以上四个核心组件中,除了Load Generator组件可以独立安装、并且安装在非windows环境。


·Vugen的使用:
录制基本使用流程:
new--选择协议--选择录制选项--执行录制。

手写脚本的基本流程:
new--选择协议--选择录制选项--cancel--手写。

·录制界面的选项:
·Application type:根据被测产品的架构类型来选项,默认是B/S类型。

·Program to record:选择要录制的客户端程序,web应用的客户端就是浏览器。


·Vugen的选项:
一般来说,Vugen中的选项有三大类:recording options、run time settings、General options。
·recording options:录制选项、影响的是脚本的录制和生成。
·run time settings:运行时选项,影响的是脚本的运行效果。
·General options:常规选项,影响的是Vugen自身调试脚本的效果。


·录制选项:
·recording:该选项是用来控制LR录制生成脚本的方式。有两大类、三小类:
·HTML模式:又叫主页面模式,该模式下,LR只会对页面主请求进行解析、生成对应的脚本。
优点:生成的脚本简洁,可读性强。
缺点:可能会遗漏某些ajax的请求。
语法特点:请求中会有下列属性:Mode=HTML

HTML模式又分为两种子模式:HTML下基于用户行为模式、HTML下基于URLs模式。

·HTML下基于用户行为模式:该模式生成的脚本,会强制建立依赖,请求之间是基于上下文(Content)来运行的。
优点:如果应用本身存在上下依赖,则可以不需要做关联处理。
缺点:脚本强制依赖,导致脚本的耦合度过高,可编辑性为零。

·HTML下基于URLs模式:该模式下生成的脚本,都是基于URL来实现的。
优点:脚本的耦合度低,可编辑性强。
缺点:对于应用中的依赖,必须通过关联进行处理。


·URL模式:又叫HTTP模式,该模式下,LR会对所有的http请求都进行解析、生成对应的脚本。包括主请求、子请求(资源请求和ajax请求)。
优点:不会遗漏任何http协议的请求。
缺点:生成的脚本极其臃肿、可读性很差。
语法特点:请求中会有下列属性:Mode=HTTP


PS:平时以HTML下基于URLs模式为主,以URL模式为辅来进行脚本的录制和开发。


·Regerator Script:重置脚本,会按照当前的录制选项,去重置还原脚本(仅限于录制产生的脚本)。

·Port Mapping:端口映射,和https、代理录制有关。

·Advanced:该选项中的Support选项,会直接影响到脚本生成中的中文乱码问题、间接影响脚本的执行问题。
·勾选Support选项:效果为生成的脚本中,如果服务器返回的是utf-8编码的数据,则LR会自动对之进行解码,解析为和本地语言匹配的编码(中文)。

·没有勾选Support选项:效果为生成的脚本中,如果服务器返回的是utf-8编码的数据,则LR不会自动对之进行解码,最终显示就为乱码(用中文编码去解读UTF-8编码的数据)。

核心原理:
·脚本中是否存在乱码,其实本质上不会影响脚本的执行。
·真正决定脚本中能否可以使用本地语言(中文)的,是Run time settings中的preferences--options--Convert from/to UTF-8选项。
·如果勾选了Support,则生成的脚本中的Convert选项的值就会是YES(1)
则表示脚本中可以直接用中文,LR会自动进行解码和编码。

·如果没有勾选,则生成的脚本中的Convert选项的值就会是NO(0)
则表示脚本中不可以直接用中文,LR不会自动进行解码和编码。

posted @ 2019-10-23 10:18  沫笙*  阅读(131)  评论(0编辑  收藏  举报