性能测试的根本:性能测试实际上就是模拟客户端发送请求给服务器
一、Jmeter的脚本生成:
一般来说,对于jmeter而言,它的脚本生成方式有三种:
1. 借助第三方工具录制生成:
– badboy 被淘汰
– blazemeter,是一个chrome的插件 缺点:国内无法注册账号
2. 使用自带的http代理服务器方式生成;
(1)第一步:添加线程–线程组
(2)第二步:添加配置原件–http cookie管理器
(3)第三步:添加非测试原件–http代理服务器
(4)第四步:配置http代理服务器并且启动
端口:由用户指定,在jmeter所在机器中未被占用即可。和被测试的服务器的服务端口没有任何关系。
目标控制器:是用来指定用于存放脚本的组件,建议选择测试计划–线程组。
过滤器:
(5)在客户端进行设置,使得客户端的请求通过代理:Internet选项–连接–局域网设置–勾选为局域网使用代理服务器
– 地址:填写jmeter代理服务器所在机器的IP地址
--端口:填写jmeter代理服务器中所设置的端口
3. 抓包手写,有三点要求:
(1)熟悉协议
(2)熟悉抓包工具
(3)熟悉接口测试工具
二、Jmeter的组件:
jmeter的脚本是由不同的组件构成的。同一种类型的组件的图标是相同的,jmeter中的组件有:
-
测试计划:自带组件,jmeter所有的其他类型组件都是必须位于该组件下;
-
线程组:必选组件,jmeter是通过该组件来控制线程的数量(执行脚本的线程)、循环次数
-
逻辑控制器:可选组件,用来控制脚本的执行逻辑
-
取样器:sampler,即请求,属于必加组件。我们要去实现接口测试,则需要根据接口类型选择合适的取样器
-
其他组件:配置元件、定时器、前置处理器、后置处理器、断言、监听器,这六大类组件都是辅助组件,都是用来服务于取样器组件的
-
配置元件:是用来完成一些基础配置工作:
– http cookie管理器:是用来实现cookie管理功能
– http信息头管理器:是用来添加http的信息头 -
定时器:和时间控制相关的组件
-
前置处理器:运行在请求之前的而一些组件
-
后置处理器:运行在请求之后的组件
-
断言:是用来实现检查点、断言的组件
-
监听器:日志组件,用来管理日志
作用域
作用域是jmeter中六大辅助组件对于取样器组件的生效规则。
定义:辅助组件对于其父组件、所有同级组件的子组件有效。
其中:
1. 定时器、前置处理器是运行在作用域内的每一个请求之前,和组件的先后无关,运行次数等于请求的次数
2. 后置处理器、断言是运行在作用域内的每一个请求之后,和组件的先后无关,运行次数等于请求的次数。
三、接口、接口测试
1. 接口的定义?
广义的定义:所谓接口就是指输入和输出数据的集合。通常来说,这样的定义是相对于UI而言的。
狭义的定义:狭义的接口就是指系统架构层面,模块和模块之间,组件和组件之间通信的一种定义。这种接口对输入和输出是有严格的定义,一般来说是有概要、详细设计文档的。
2. 什么是接口的测试?
广义的接口测试:接口测试就是相对于UI测试而言,是指不从UI层面去切入测试,而是直接从接口(通信)层面去切入测试。
狭义的接口测试:是指针对概要、详细设计文档、接口文档中所定义的各个接口所进行的测试。一般来说,依赖于接口文档。
3. 接口测试需要测试什么?
接口测试本身只是一种测试方式,他需要完成的测试一般包含以下几点:
(1)功能测试:接口本身就是一个个功能的具体实现。对于接口的功能测试,我们可以考虑:
– 入参的分类:必填和非必填
– 每一个参数:等价、边界进行用例的设计
– 对于非必填:一般考虑使用因果图或者正交进行组合
– 对于非必填项: 一般是不考虑组合的
– 接口之间的业务场景的测试
(2)安全性:通常来说,接口可以分为内部和外部接口。
– 内部接口:用户不可触达,只是系统内部之间相互调用的,一般来说安全性要求较低
– 外部接口:用户可以抵达,一般来说根据业务本身的安全级别,安全性要求相对较高
(3)性能:对于接口,我们是需要考虑接口的性能,性能测试和接口方式的实现方式是一致的,都是在通信(协议)层面去模拟用户的请求。
4. 接口测试对于测试人员