1 接口基本介绍
一、为什么学习接口测试
在当前的程序开发中更多的会使用到面向接口进行开发。
二、程序开发中为什么使用接口
a)有了接口之就相当于定义了一套标准,可以规范我们的开发过程。
b)接口可以保证数据安全。
c)接口可以让我们的项目更加容易迁移。
三、接口是什么
我们可以将接口理解为是不同操作之间顺利交互的标准
2 接口测试
一、定义
在程序测试中我们可以将接口测试理解为是验证某个标准是否能正常工作的一种测试。
二、接口测试原理
【接口测试就是基于某种协议】模拟客户端向服务器发送请求。
三、接口测试测试点
a)测试请求:测试请求地址是否正确,请求是否能正常通过。
b)测试数据:判断接口返回的数据是否和预期一样
c)测试安全:有些接口不是暴露出来的,我们需要先进行验证才可以进行测试。
d)测试性能:例如某一个接口在同一时间点上要有很多的用户同时去访问。
四、接口测试分类
a)Web接口:服务器接口 + 第三方接口
b)模块接口:所谓的模块我们可以理解为是一个客户端软件内部的不同功能。所以模块接口就是这个软件内不同功能之间交互的一个标准。
3 测试插件基本介绍
1 postman 它是chrome 的专用插件
2 Restclient 它是由国人开发 适用于 firefox 浏览器的插件
3 Jmeter 是一个独立的测试工具
4 测试插件安装及使用
1 测试插件的功能就是帮我们在浏览器上完成简单的接口测主式工作。
2 Restclient 插件:
a)打开火狐浏览器----扩展程序面板------搜索具体的插件名称------在线下载安装成功
b)在浏览器右上角会有具体的图标,点击图标启动插件,之后我们就可以进行简单的测试操作。
3 postman 插件:
a)该插件由于不能直接在线安装,所以我们需要先准备好插件的解压包
b)打开chrome ----扩展程序---启用开发者模式----添加已解压的插件包----启用安装好的插件【 在chrome 浏览器的新标签页里找到应用点击启动postman】
5 restful 风格
一、定义
我们可以将 restful 理解为是一种种接口设计的标准。它不是具体的接口
二、Restful 具体表现:
http://服务器地址:[端口号]/[项目名称]/[版本号]/[**资源集合/**]/[单个资源]
注意:
01: []里的内容表示可以省略
02 http: 这就是我们当前应用最多的一种网络传输协议。
03 服务器地址:存放我们项目的具体网络位置。【具体ip地址】
04 端口号:具体资源所在地编号
05 资源:我们可以将它理解为是当前接口想从服务器获取到的内容。
6 常见的 HTTP请求及返回状态码
一、http 常见的操作方法:
a)Get: 从服务器获取资源。
b)Post: 向服务器新增资源
c)Put :更新服务器中的资源
d)Delete:删除服务器中的资源
二、返回状态码:
a)200get 成功
b)200/201 对应的操作就是put post get
c)204 delete 删除操作。
7 基于学生信息系统项目操作
一、安装项目:
a)Cmd 切到项目当前存放的位置,然后按着提示输入我们在线安装依赖包的命令执行。
b)安装成功之后,我们就可以通过 python run_server.py 操作来启动我们的服务,默认情况下它占用的是 8000端口【 此时我们可以直接从原始 API 文档上进行接口地址拷贝 】
二、restclient 插件测试项目的增 删 改 查
选择正常的操作方法,填入具体的接口地址和相应的报文即可。【 当前只需要演示和看 】
8 测试工具基本介绍
一、为什么使用测试工具
a)我们想让用户去连续请求某一个接口100次。
b)我们现在要求100个用户同时去请求一个接口。
c)在实际的测试当中往往会遇到连续的测试操作( 登录----发贴----删贴 )
d)综上所述我们可以发现在实际的测试当中有很多操作是我们通过手工或者简单的插件是没有办法很好实现的,因此我们就可以考虑去使用功能强大的测试工具。
二、Jmeter 基本定义
它就是一款由 apache 开发和维护的一款开源软件。【 由java编写而成 】
三、Jmeter 可以做什么
a)接口测试
b)性能做测试
c)java测试
d)数据库测试
四、Jmeter 的优点和缺点
-
优点
a)因为它是开源的软件所以最大好处可能就是免费。
b)同样因为开源 所以我们可以直接在网上下载到相应的源代码,如果说后期使用过程中我们发现自已特别需要某一个功能而 jmeter 本身又没有,此时我们就可以自行扩展【 使用java 】
c)相对于其它的商业测试软件来说,在实现相同功能的前提下它占用的体积更小。
-
缺点
a)Jmeter 没有办法实现ip欺骗。
b)jMeter测试是没有界面的,我们都是通过接口测试数据来完成结果。
9 Jmeter 运行环境配置
因为jmeter 是由java 编写而成的一款软件所以运行它的机器上都必须具备相应的执行环境。
一、相关名词和概念介绍( 了解 )
a)Jdk: 它就是一个java 开发的工具包,一般用于程序具体的开发(程序员),在它里面包含 jre 和 jvm
b)Jre: 相对于 Jdk 来说它就是一个运行相应java 软件的环境。它里面包含了 jvm。
c)Jvm: 它就是java 的虚拟机。它的主要功能就是可以帮助我们实现java 软件跨平台。
总结:
01 jdk与jre相比较来说它一般是用于生产环境而jre 就是用来运行已经生产好的软件。
02 如果说我们想要在某个机器上运行相应的 Jmeter 软件那么就可以直接安装好对应的 jdk 环境。
二、具体环境的设置
a)我们去下载相应的 Jdk 安装包。【 版本建议在1.7以上 】
b)当我们有了具体的安装包之后只需要执行相应的安装操作,此过程当中我们需要记住它的安装目录。
c)当我们安装成功之后就可以去配置相应的系统环境变量。
d)上述操作完成之后我们就可以通过某些命令行语句来验证是否安装和配置成功。
10 线程组基本介绍
1 定义
我们可以将 线程组理解为是实际当中我们需要发送请求的用户。
2 默认线程组分类
在Jmeter 当中原生存在三类线程组:
a)Setup thread group :在某个请求具体执行之前需要完成的事情。
b)Teraddown thread group在某个请求具体请行之后需要完成的事情。
c)线程组:它就是普通用户,使用频率是最高的。
3 线程组相关属性:
a)在取样器错误之后执行的动作
i.继续:忽略当前错误然后直接继续运行。
ii.Start next thread loop :忽略当前的错误然后继重头开始继续执行
iii.停止线程:将当前有错的线程停掉,然后其它的线程继续执行。
iv.停止测试:在当前错误继程执行完毕之后将测试计划停止。
v.Stop test now: 立即停止所有的测试操作
C)线程数:设置一个具体的数值 就表示当前准备多少个用户。
D) 准备时长:单位是s 表示当前的所有线程会在多少秒之类准备完成
F) 循环的次数:设置一个具体的数值 表示当前请求会被执行多少次
G) 调度器:可以通过设置具体的时间来对该测试计划进行可控的时间管理操作。
11 测试片段
1 测试片段和线程组属于同一级别。
2 测试片段里面存放的内容默认是不会执行的,一般是在需要的时候通过其它的元件让它能够执行。
12 Jmeter 元件基本介绍
元件的分类【 可以将它理解为是编程语言当中的数据类型 】
元件:我们可以将Jmeter 中实现某一些相同效果的组件集合称之为元件。
01 逻辑控制器:我们可以将它分为二类,其中一类就是用来对当前的具体操作进行分类。另外的一类就可以用来对具体的操作执行进行相应的控制。
02 配置元件:这个元件一般是用来为具体的操作提供数据支持。
03 定时器:它可以帮我们控制当前操作的时间。
04 前置处理器:某一个请求真正发出之前有可能需要完成其它的操作,此时我们就可以通过这个元件来实现。
05 取样器:它就是jmeter 当中真正去执行请求的元件。
06 后置处理器:当某个请求完成之后如果想要做一些相应的操作就可以基于此元件来实现。
07 断言:我们可以基于预期的结果对当前请求的实现返回结果进行相应的判断。
08 监听器:它为我们的测试提供了可视化的图形显示界面。
13 Jmeter 元件作用域
1 作用域
在 jmeter 当中我们可以将作用域理解为是元件起作用的范围。
2 在 jmeter 当中存在八个元件,我们可以将它们分为三类:
a)逻辑控制器:它对它下面的“子元素”有绝对的控制器。
b)取样器:因为该元件最终都是需要被执行的,所以它放在哪里元所谓。不影响作用
c)另外六个:关于这个六个元件我们为他们准备了一句话,如果某个元件的父亲是一个取样器,那么该元件就对当前取样器起作用,如果这个元件的父亲不是取样器那么该元件就对当前父亲下面的所有子元件起作用(是可以穿透的)
14 Jmeter 元件执行顺序
默认情况下如果八个元件都存在那么它们的执行顺序就是:逻辑控制器---配置元件--前置处理器----取样器-----后置处理器-----断言-----监听器
15 Jmeter 录制脚本
1 脚本
对于jmeter 来说我们可以将后缀名为 jmx 的文件称之为 脚本。
2 录制
所谓的录制就可以理解为将原来手动添加的一些操作通过其它的形式保存为Jmx 的过程。
3 Jmeter 如何实现录制:
a)在Jmeter 的工作台当中添加一个 HTTP 代理服务器,然后将它属性当中的“目标控制器”设置正确【 在测试计划中添加一个线程组,然后勾选此即可 】,完成之后需要将当前服务启动才会生效。
b)建议大家选择IE浏览器( 因为使用代理模式上网会被认为存在一定的安全问题 ),此时我们需要在internet 选项中设置相应的代理服务器配置【 127.0.0.1---8080 】
c)上述操作完成之后就可以在浏览器进行相应的手工操作,然后这些操作就会被 Jmeter 保存起来,方便我们后续的测试。