2.接口测试:接口测试(重点)
A. Who 是什么
测试后端实现是否符合接口规范
B. Why 为什么
程序安全,效率
C. What 怎么用
模拟客户向服务器发送数据,然后查看响应
要素1:定位服务器资源(通过 URL 实现:http://www.baidu.com|http://127.0.0.1)
要素2:模拟用户提交数据
要素3:查看响应的结果是否符合预期
D. 接口测试
类型1:web 接口测试(BS 架构)
|---- 服务器接口测试:测试自己公司写的程序
|---- 第三方接口测试:测试别的公司实现的接口
类型2:模块接口测试(CS 架构)
3.接口测试:环境搭建
A. Who 是什么
B. Why 为什么
C. What 怎么用
-
运维或开发实现程序部署,正常运行
-
自己搭建
-
安装python
-
安装依赖模块:
1. python3.5以上版本
2. pip install -r requirements.txt
若安装慢则:
pip install -r requirements.txt -i https://pypi.douban.com/simple
3. 如果须使用mysql,那么需要将studentManagementSystem/studentManagementSystem.settings.py的第78行的配置更改以下,注释sqllite3
4. 执行studentManagementSystem.sql文件,生成数据库
5. 启动命令: python run_server.py
6. 默认端口是8000,地址本机ip -
学生管理系统简介
核心:学生表 班级表 学院表
操作:3 张表的增删改查
-
4.接口测试:插件
A. Who 是什么
火狐-RESTClient
谷歌-POSTman
Jmeter
B. Why 为什么
C. What 怎么用
5.接口测试:RESTful 风格 (重点)
A. Who 是什么
RESTful 风格中规范了,
URL的实现方式,
提交的数据实现方式,
响应的数据实现方式...
B. Why 为什么
C. What 怎么用
RESTful 风格是约束接口操作的四种操作以及三个要素
增:
要素1: URL + POST
要素2: 多个数据
方式1: 键=值&键=值
方式2: JSON 格式
要素3:
状态码:200|201 + 添加的记录
删:
要素1: URL + GET|DELETE
要素2:
方式1:键=值&键=值
要素3: 200 | 204 + 无
改:
要素1: URL + POST|PUT(更合适)
要素2:
方式1: 键=值&键=值
方式2: JSON 格式
要素3: 200 | 201 + 修改后那条记录
查:
要素1: URL + GET
要素2: 常用方式1 URL?键=值&键=值...
要素3: 200 + 一条记录或多条记录
状态码:
404 --- 资源路径有误
505 --- 服务器异常
6.接口测试: JSON
A. Who 是什么
A-1, JSON 是一种数据载体:
A-2, 互联网本质就是数据传输, 数据传输需要数据载体,比如: 页面信息就是存储在 html 这种数据载体中的
A-3, HTML 格式.
XML 格式.
A-4, JSON 优化数据传输
B. Why 为什么
JSON 传输数据效率更高,所以部分场景下使用 JSON 替换 html 和 XML.
C. What 怎么用
7.接口测试:实战
目的:RESTful 风格联系
A, 安装并运行学生管理系统
B, 获取并读懂接口规范
B-1,从前期文档中提取接口清单
API 文档:application programing interface 应用程序编程接口
接口清单的由来
B-2,接口清单读懂
要素1:URL+ 请求方法
要素2:提交的数据
要素3:响应的结果
C,逐一测试接口
总结:
1, 新增数据时,数据时JSON格式的,必须设置浏览器的http请求头,不然会当成普通文本处理
Content-Type : application/json;charset=utf-8(记住)
Content-Type: 提交的内容类型
application/json : 数据类型是 JSON 格式 | 大类型/小类型 img/jpg img/png
charset=utf-8: 设置编码集,utf-8 支持世界所有字符
A. Who 是什么
B. Why 为什么
C. What 怎么用
Jmeter: 概述
A:是什么?
Jmeter 是 Apache 公司使用 Java 开发的一款测试工具.
bin: 存储了 Jmeter 的课执行程序,比如启动程序
lib: 存储了Jmeter 整合的一些功能(一些 .jar 文件的小程序)
启动 Jmeter
启动方式1:bin/ApacheJmeter.jar 双击
启动方式2: jmeter.bat windows 下的启动程序
jmeter.sh linux 下的启动程序
B:为什么?
高效,功能强大
C:怎么用?
Jemter:线程组
进程:一个正在执行的程序就对应一个进程
线程:进程中的执行线索(一个进程有多个执行线索)
线程组:按照现成性值对现成进行分组
并发执行:多个现成同时执行 特点:执行结束的顺序和现成的启动顺序不一定一致;
顺序执行:按照现成的启动顺序挨个执行
怎么用?
C-1,三者关系:进程有多个线程组,线程组可以有多个线程
进程--测试计划
线程组---现成组
现成---线程组属性的线程数
C-2,默认情况下,线程组中的现成hi并发执行的
每一个现成都要执行组内的 http 请求
C-3,怎么设置线程组顺序执行
勾选测试计划的第一个复选框(独立运行每个线程组)
C-4,
D,练习:学生管理系统增删改查
调度器
定时请求,定时器
Jmeter 组件: 参数化概述(了解)
A,参数化就是动态的获取并设置数据
B.执行批量操作时,批量插入或批量删除,之前数据都是手写的,每执行完都需要修改一次,效率太低.
参数化就是可以以程序代替人工获取并设置数:安全+高效
Jmeter 组件:参数化实现之CSV Data Set Config(重点重点)
通过这个组件可以动态获取并设置数据,实现类似铺量添加操作(执行一次,将多条数据插入到数据库)
实现思想
实现流程
右键线程组 -> 添加 -> 配置原件 ->CSV Data Set Config
CSV(逗号分割值文件格式)
测试计划中,勾选独立运行每个线程组,可以控制是否按顺序执行每个线程组.
setUp 和 tearDown
Set Up 线程组:最先执行的线程组
加载程序主题执行所需的资源
Tear Down 线程组:最后执行的线程组
程序正式关闭之前,可以将数据保存进内存