接口测试完整教程(附代码资料)主要内容讲述:接口测试,学习目标学习目标,2. 接口测试课程大纲,3. 接口学完样品,4. 学完课程,学到什么,5. 参考:,1. 理解接口的概念。学习目标,RESTFUL1. 理解接口的概念,2.什么是接口测试,3. 接口测试的基本流程,4. 学习掌握接口测试工具RESTClient、Postman的使用,目标,1. 定义。Jmeter 基本使用流程学习目标,目标,1. 主界面布局,2.Jmeter的基本使用流程,3. 相关概念。Jmeter 八大元件及执行顺序,参数化学习目标,目标,1. 元件作用域及执行顺序,2. 八大可执行元件,目标,目标。Jmeter 从数据库中获取数据,Jmeter 关联目标,目标,为什么要使用Jmeter从数据库中获取数据?,目标,1. 需求,2. 正则表达式提取器。Jmeter断言,Jmeter 集合点目标,目标,1. 断言概述,2. 需求,3. 响应断言,4. Size Assertion(大小断言)。Jmeter 逻辑控制器学习目标,目标,1 为什么要学习逻辑控制器?,2. 什么是逻辑控制器?,3. 常用(控制类)逻辑控制器,4. 常用(分组类)。Jmeter 图形监视器扩展插件下载及使用,项目-学生信息管理系统学习目标,目标,1. 为什么要下载图形监视器扩展插件?,2. 图形监视器扩展插件有什么用?,目标,目标。项目-学生信息管理系统,Jmeter 附件-API文档目标,目标,Queries释义,Queries释义,目标,目标。接口自动化脚本设计,性能脚本设计目标,目标,为什么要设计自动化脚本?,3. 组件配置图,4. 整体效果动态演示,5. 脚本执行含查数据库演示。Jmeter FTP服务器测试,Jmeter Test Fragment(测试片段)目标,目标,1. FTP是什么?,2. FTP有什么用?,3. 如何测试FTP服务器?,目标。
全套笔记资料代码移步: 前往gitee仓库查看
感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~
全套教程部分目录:
部分文件图片:
学习目标
1. 理解接口的概念
2.什么是接口测试
3. 接口测试的基本流程
4. 学习掌握接口测试工具RESTClient、Postman的使用
RESTFUL
目标
- 了解接口常用架构-RESTful架构相关知识
1. 定义
RESTful架构是一种接口设计架构风格,而不是标准,只是提供了一组设计原则。
2. 风格
- [
-
- 服务器地址:为我们项目服务器IP地址
- 端口号:为我们服务器内项目访问的指定编号
- [/项目名称/版本]:可选
- 资源:互联网-图片、音乐、视频、文本、数据
3. RESTful相关知识(科普)
3.3 HTTP请求方法
- GET(SELECT):从服务器取出资源(一项或多项)。
- POST(CREATE):在服务器新建一个资源。
- PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
- DELETE(DELETE):从服务器删除资源。
3.4 响应状态
客户端请求服务求后,服务器响应给客户端的状态码。
3.5 状态码集合汇总
序号 | 状态码 | 动词 | 说明 |
---|---|---|---|
01 | 200 OK | [GET] | 服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)幂等:无论执行操作多少次,结果都会执行1次结果相同 |
02 | 201 CREATED | [POST/PUT/PATCH] | 用户新建或修改数据成功 |
03 | 202 Accepted | [*] | 表示一个请求已经进入后台排队(异步任务) |
04 | 204 NO CONTENT | [DELETE] | 用户删除数据成功 |
05 | 400 INVALID REQUEST | [POST/PUT/PATCH] | 用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的 |
06 | 401 Unauthorized | [*] | 表示用户没有权限(令牌、用户名、密码错误) |
07 | 403 Forbidden | [*] | 表示用户得到授权(与401错误相对),但是访问是被禁止的 |
08 | 404 NOT FOUND | [*] | 用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的 |
09 | 406 Not Acceptable | [GET] | 用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式) |
10 | 410 Gone | [GET] | 用户请求的资源被永久删除,且不会再得到的 |
11 | 422 Unprocesable entity | [POST/PUT/PATCH] | 当创建一个对象时,发生一个验证错误 |
**12 | 500 INTERNAL SERVER ERROR | [*] | 服务器发生错误,用户将无法判断发出的请求是否成功** |
3.6 对结果进行判断
序号 | 方法 | 预期结果 |
---|---|---|
01 | GET | collection:代码:200;数据:返回资源对象的列表(数组) |
02 | GET | collection/resource:代码:200;数据:返回单个资源对象 |
03 | POST | collection:代码:200/201;数据:返回新生成的资源对象 |
04 | PUT | collection/resource:代码:200/201;数据:返回完整的资源对象 |
05 | DELETE | collection/resource:代码:204;数据:返回为空 |
4. 总结(RESTful)
序号 | 名称 | 值 |
---|---|---|
01 | 定义 | 一种软件架构风格、设计风格,而不是标准 |
02 | RESTful风格 | [ |
03 | 请求方法 | GET(获取资源);POST(新增资源);PUT(更新资源);DELETE(删除资源) |
04 | 状态码 | GET:200;POST:200/201;PUT:200/201;DELETE:204 |
05 | [JSON] | 是一种轻量级的数据交换格式;JSON是已键/值对组合方式,键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值: 1 |
案例-《学生信息管理》
目标:
- 验证RESTful风格,加强理解;
- 通过实践,理解接口测试;
1、背景:
学生信息管理系统中接口采用了标准RESTful架构风格,帮助同学们更深切理解RESTful
2、简介:
学生信息管理系统的功能是收集学生的个人信息,以便向老师提供每个学生在校或毕业生学籍的情况,还可以让学生用自己的学号去查看自己在校期间的表现。
3、环境搭建
-
1). 安装Python3(3.5以上版本)
-
2). 搭建图书管理项目环境(安装依赖模块)
-
在项目当前文件夹下,运行以下命令:
`pip install -r requirements.txt -i
- 运行
python run_server.py
-
RestClient/Postman安装完毕
-
在浏览器上输入[
4、API接口清单
4.1 API文档由来
4.2 API文档作用
4.3 API接口清单
一、查询1.1学院-查询所有请求方法:GET请求地址:1.2学院-查询指定请求方法:GET请求地址:(注:T02为学院ID;)1.3根据指定参数进行学院-List-$dep_id_list的相关查询请求方法:GET请求地址: (注:$dep_id_list:为参数名称;T01,T02,T03为:学院ID;)1.4学院-List-$master_name_list查询请求方法:GET请求地址:(注:$master_name_list:为参数名称;Java-Master,Test-Master为:院长名称;)1.5学院-模糊 请求方法:GET请求地址:(注:blur:为开启模糊查询参数1为开启;dep_name:为参数名称;C:学院名称包含字符;)1.6学院-组合请求方法:GET请求地址: is Slogan&master_name=Test-Master&dep_name=Test学院(注:dep_name:学院名称;master_name:为院长名称;slogan:学院口号;三个条件可随意组合或单独使用)
二、新增2.1学院-新增1) 请求方法:POST2) 请求地址:3) 请求JOSN报文:4) 调用传入的json串如下(可新增多条,之间用,隔开):{"data": [{"dep_id":"T01","dep_name":"Test学院","master_name":"Test-Master","slogan":"Here is Slogan"}]}5) 新增成功返回报文:{"already_exist": {"results": [],"count": 0},"create_success": {"results": [{"dep_id": "T02","dep_name": "Java学院","master_name": "Java-Master","slogan": "java"}],"count": 1}}6) 新增失败id已存在-返回报文:{"already_exist": {"results": [{"dep_id": "T01","dep_name": "Test学院","master_name": "Test-Master","slogan": "Here is Slogan"}],"count": 1},"create_success": {"results": [],"count": 0}}7) 新增失败json格式错误:{"status_code": 400,"detail": "请求体参数格式错误。"}
三、更新3.1学院-更新1). 请求方法:PUT2). 请求地址:(注:1:为学院ID)3). 请求JOSN报文:{"data": [{"dep_id": "T03","dep_name": "C++/学院","master_name": "C++-Master","slogan": "Here is Slogan"}]}4). 修改成功返回:{"dep_id": "T03","dep_name": "C++/学院","master_name": "C++-Master","slogan": "Here is Slogan"}
四、删除4.1学院-删除单个请求方法:DELETE请求地址:(注:10为学院ID)4.2学院-删除多个请求方法:DELETE请求地址:(注:$dep_id_list:为参数名称;8,9,11:为学院ID)
注意
RESTClent:插件使用时信息头要设定:Content-Type application/json
学习目标
- 了解Jmeter的优缺点
- 能够搭建Jmeter的测试环境
- 知道Jmeter的基本使用流程
- 能够区分组件和元件的区别
- 掌握Jmeter的基本使用
Jmeter简介
学习目标
- 了解Jmeter的优缺点
1. Jmeter 概述
JMeter最初是由Apache软件基金会的Stefano Mazzocchi编写和开发的, 所以Jmeter也称为“Apache JMeter”,它是一个开源的,100%基于Java的应用程序,带有图形界面。
Apache JMeter 是 100%纯 java 桌面应用程序,被设计用来测试客户端/服务器结 构的软件(例如 web 应用程序)。它可以用来测试包括基于静态和动态资源程序 的性能,例如静态文件,Java Servlets,Java 对象,数据库,FTP 服务器等等。 JMeter 可以用来在一个服务器、网络或者对象上模拟重负载来测试它的强度或 者分析在不同的负载类型下的全面性能。
另外,JMeter 能够通过让你们用断言创建测试脚本来验证我们的应用程序是否 返回了我们期望的结果,从而帮助我们回归测试我们的程序。为了最大的灵活性, JMeter 允许我们使用正则表达式创建断言。
Jmeter的主要功能有:
1. web自动化测试
2. 接口测试
3. 性能测试
4. 压力测试
5. 通过jdbc进行数据库测试
6. java测试
2. Jmeter的优缺点
优点:
1、开源工具,可扩展性非常好2、高可扩展性,用户可自定义调试相关模块代码3、精心简单的GUI设计,小巧灵活4、完全的可移植性和100%纯java5、完全swing和轻量组件支持(预编译的HAR使用javax.swing.*)包6、完全多线程框架,允许通过多个线程并发取样以及单独的线程对不同的功能同时取样7、支持脚本取样器
缺点:
1、 不支持IP欺骗
2、 使用JMeter无法验证JS程序,也无法验证页面UI,所以要须要和Selenium配合来完成Web2.0应用的测试
2. 了解:JDK、JRE、JVM
2.1 JDK
JDK概念:java开发工具包,程序员使用。包含JRE和JVM。
2.2 JRE
JRE(java runtime environment):JAVA程序运行环境,包含JVM和JVM运行时所需要的资源。是java编写的程序运行时需要的软件环境, 是提供给想运行java程序的用户使用的.
2.3 JVM
JVM(java virtualenv machine):Java虚拟机
思考:
JDK 和JRE的区别?
2.4 JAVA跨平台原理【扩展】
java跨平台机制是: 一次编译,到处运行.
总结: 对于测试人员,我们要记住,如果使用JMeter,必须要安装JDK或者JRE。
jdk安装参考:
jdk环境安装参考文档
Jmeter工具安装
目标
- 了解Jmeter安装目录结构
2. Jmeter下载与安装
2.1 官网下载地址:
[
下载示意图(安装包)
注意:
下载后,解压文件到任意目录,避免在一个有空格的路径安装Jmeter,这将导致远程测试出现问题。
2.2 启动JMeter的两种方式:
-
进入bin目录
-
方式1: 双击 ApacheJMeter.jar文件(最常用);
-
方式2: 双击 Jmeter.bat文件(有黑窗口并且不能关闭,是服务端);
-
方式3: linux 下启动Jmeter == meter.sh
3 Jmeter常用目录文件介绍
3.1 Bin目录
存放可执行文件和配置文件
- Jmeter.bat:windows系统中JMeter的启动文件
- ApacheJMeter.jar Java环境下的JMeter启动文件
- Jmeter.log:日志文件
- Jmeter.sh:linux系统中JMeter的启动文件
- Jmeter.properties:系统配置文件
- Jmeter-server.bat:windows分布式测试要用到的服务器配置
- Jmeter-serve:linux分布式测试要用到的服务器配置
3.2 docs目录(了解开源)
docs:是JMeter的java Doc,可打开api\index.html页面来查看;
3.3 printable_docs目录
printable_docs的usermanual子目录下的内容是JMeter的用户手册文档,其中usermanual下component_reference.html是最常用到的核心元件帮助文档。