1.接口测试-接口测试(重点)
-
是什么?
测试后端实现是否符合接口规范 -
为什么
程序安全、效率 -
怎么用?(实现流程)
模拟客户向服务器发送数据,然后查看响应
要素1:定位服务器资源(通过URL实现:http://www.baidu.com | http://127.0.0.1:8000/资源路径)
要素2:模拟用户提交数据
要素3:查看响应的结果是否符合预期 -
接口测试分类
类型1:web接口测试(BS架构)
| ----服务器接口测试:测试自己公司实现的接口
| ----第三方接口测试:测试别的公司实现的接口
类型2:模块接口测试(CS架构)
2.restful 风格
-
约定成俗的习惯、规范
-
易读性 和 易维护性
-
增删改查 与三要素
增:
1.URL + POST
2.提交数据 ----设置 HTTP 信息头 Content-Type application/json;charset=utf-8
键=值&键=值
3.200 | 201 + 增加后的记录
删:
1.URL + delete
2.提交数据
键=值&键=值
3.204 + 无
改:
1.URL + PUT
2.提交数据
键=值&键=值
JSON
3.200 | 201 +修改后的数据
查:
1.URL + GET
2.提交数据
键=值&键=值
3.200 + 一条或多条记录404 --- 路径有误 505 --- 服务器异常
-
JSON数据
1. 和Html一样也是数据载体
2. 简洁、效率高
3. 对象:{“键”:“值”,“键”:“值”,…}
数组:[值1,值2…]可嵌套使用
GET 和 POST 区别:
1.POST 安全性高
2.POST提交的数据量没有大小限制
3.GET执行效率高
3. Jmeter:概述
-
是什么?
Jmeter是Apache公司使用Java开发的一款测试工具 -
为什么?
高效、功能强大
模拟一些高并发或多次循环等特殊测试场景 -
怎么用?
1.下载Jmeter,解压缩
2.安装Java环境(注意:安装路径不能有中文字符、空格,安装了JDK+JRE)
3.简单了解Jmeter的目录结构
bin:存储Jmeter的可执行程序,比如启动程序
lib:存储Jmeter整合功能(一些.jar文件的小程序)
4.启动Jmeter
启动方式一:bin/Apachejmeter.jar双击
启动方式二:jmeter.bat windows下启动程序
jmeter.sh linux下的启动程序
5.编写一个Jmeter版本的测试案例
- Jmeter 的作用优点以及缺点(了解)
- 作用:
1.接口测试
2.性能测试:内在—程序的算法(响应时间)
3.压力测试:外在—外在负载(当前用户数)
4.web自动化测试
5.数据库测试:测试数据库
6.Java程序测试: - 优点:
1.开源、免费
2.支持多协议 http、https、ftp、
3.小巧
4.功能强大 - 缺点:
1.不支持 IP 欺骗
2.不支持前端测试
- 作用:
4. Jmeter组件:线程组
-
是什么?
进程:一个正在执行的程序就是一个进程
线程:程序中的执行线索(一个进程有多个执行线索)
线程组:按照线程性质对线程进行分组
---------------------------------------------
并发执行:多个线程同时执行 特点:执行结束的顺序和线程的启动顺序不一定一致。
顺序执行:按照线程的启动顺序挨个执行 -
为什么?
- 方便管理
-
怎么用?(基本使用)
- 三者关系:进程有多个线程组,线程组可以有多个线程
进程 ---- 测试计划
线程组 — 线程组
线程 ----- 线程组属性的线程数 - 默认情况下,线程组中的线程是并发执行的
每一个线程都要执行组内的 http请求 - 怎么设置线程组顺序执行
勾选测试计划的第一个复选框(独立运行每个线程组) - 可以使用http请求默认值抽取共同的ip 端口号 协议 编码集等信息
- 测试计划 —> 右击 —>添加 —>配置元件 —> http请求默认值
- 作用:通过复用属性简化实现,提高测试效率
- 三者关系:进程有多个线程组,线程组可以有多个线程
-
线程组高级(初始化与销毁线程组)
- 属性1:线程数 — 模拟用户数
- 属性2:时间值 — 在指定时间内启动所有线程
- 属性3:循环数 —单个 用户访问的次数
-
调度器(计时器)
- 循环次数设置为永远
- 设置启动延迟 x 和持续时间 y
在x 秒后访问服务器,并且持续y秒 - 设置启动时间m,和结束时间n
在m时开始访问,在n时结束
注意:2和3不能同时使用,否则矛盾了
5. Jmeter组件:参数化概述(了解)
-
是什么
参数化就是动态的获取并设置数据 -
为什么
比如执行批量操作时,批量插入或批量删除,之前数据都是手写的,每执行一次都需要修改一次,效率太低。参数化可以以程序代替人工获取并设置数据:安全+高效
6.Jmeter组件:参数化实现之CSV Data Set Config(重点)
-
是什么
- Jmeter 参数化实现组件之一
-
为什么
- 通过这个组件可以动态获取并设置数据,实现类似批量添加操作(执行一次,将多条数据插入到数据库)
-
怎么用
-
实现思想
1.编写添加框架,设置循环次数为3Json数据格式固定,值先不写 2.编写一个外部的文本文档,存储要添加的三条数据 3.Jmeter添加一个参数化组件 CSV Data Set Config,每次循环时都读取外部文档的一行数据,再将4个字段分别设置进提交的Json数据中
-
实现流程
1.线程组设置循环次数,http请求负责插入数据
2.创建文本文档,标准的csv格式文件,每一行数据对应数据库一条记录,不同字段之间使用英文,分隔
3.创建CSV组件,声明数据源以及编码集以及解析格式
4.要将csv解析的数据设置进json格式的请求报文,语法$(变量名)
-
-
其他
CSV Data Set Config —CSV数据配置
CSV ----->逗号分隔值文件格式
7. Jmeter组件:线程组实现高级
-
Set Up 线程组:最先执行的线程组
加载程序主体执行所需的资源 -
Tear Down 线程组:最后执行的线程组
程序正式关闭之前,可以将数据保存进内存