Jmeter
Jmeter 简介
Jmeter 是Apache 组织使用Java 开发的一款测试工具:
- 可以通过对服务器、网络或对象模拟巨大的负载
- 通过创建带有断言的脚本来验证程序是否能返回期望的结果
优点
- 开源、免费
- 跨平台
- 支持多协议
- 小巧
- 功能强大
缺点
- 不支持IP欺骗
- 使用Jmeter 无法验证JS程序,也无法验证业务UI,所以要和Selenium 配合来完成Web2.0应用的测试。
Jmeter 安装
JMeter 是使用Java 编写的,必须安装Java环境:
- JDK:Java 开发工具包
- JRE:Java运行环境
下载并安装JMeter
- 下载地址:https://jmeter.apache.org/download_jmeter.cgi (Windows版本下载.zip,Linux版本下载.tgz)
- 安装部分直接解压缩即可
JMeter设置成中文
- bin文件内的jmeter.properties文件

- 打开这个文件,找到#language=en 改成 language=zh_CN
JMeter的编码
- bin文件内的jmeter.properties文件

- 打开这个文件,找到#sampleresult.default.encoding=UTF-8 改成 language=zh_CN
Jmeter 启动
方式一:有java环境时,直接jar启动,在bin目录下,双击ApacheJMeter.jar,就会打开界面 
方式二:bin 目录下,双击jmeter.bat,等待一会就会弹出窗口,但是注意,控制台不能关闭,否则服务就会停掉。 

Jmeter 基本使用
设置接口三要素查询所有机构信息
- 测试计划---右键---线程---添加线程组

- 线程组---右键---取样器---http请求

- 测试计划---右键---添加监听器---查看结果树
附加:查看结果树,当http请求显示绿色说明发送请求成功,就可以查看请求响应的数据 
Jmeter 线程组
线程组是什么
- 线程组是JMeter中任何一个测试计划的开始点
- 在一个测试计划中的所有元件都必须在某个线程组下
- 线程组决定JMeter执行测试计划的线程数

setUp 线程组
介绍:在做接口测试前,一般会做一些准备工作,比如数据准备、登录等。这时候就可以用到setUp线程组,它类似于单元测试框架uniitest、pytest中的前置操作逻辑。 
线程组界面及属性介绍
tearDown 线程组
介绍:在做接口测试后,一般会做一些收尾工作,比如退出登录、关闭数据库连接、清理数据等。这时候就可以用到tearDown线程组,它类似于单元测试框架uniitest、pytest中的后置操作逻辑。
注:界面和属性与setUp线程组一致
线程组执行顺序
setUp线程组 > 线程组 > tearDown线程组
http 请求的默认值
http 请求默认值:被复用的内容的封装 
设置了默认值,则在该机构树下的请求设置就不需要再重复设置了 
信息头管理器
介绍:新增修改实现时提交的数据是JSON格式的,需要声明提交的数据的内容类型
HTTP信息头管理器是在有需要模拟请求头部的时候进行设置的,添加方式 是 右击线程组 -- 配置元件 -- HTTP信息头管理器 
可以通过抓包工具或者F12获取http请求的header头部信息;如下图:

复制并点击jmeter中的从剪贴板添加,就会自动添加到http信息头管理器的列表中;如下图

注:post请求中如果body中的数据为json,一定要在信息头管理器中加上Content-Type: application/json,表示发送的body为json格式的数据
参数化
问题:当提交的数据量较大,怎么提交?每测试一次就修改一次吗?
定义:动态的获取,设置或生成数据,是一种有程序驱动代替人工驱动的数据设计方案,提高脚本的编写,效率以及编写质量
以下是四种方式实现参数化:
- 用户定义的变量
- CSV 数据文件设置
- 用户参数
- 函数
