接口测试必须要知道的

2020-05-07  本文已影响0人  Queenie的学习笔记

1. Tips

  1. 接口就是一个文档,接口规范是架构师指定的
  2. 接口测试主要是测试后端,验证后端编写的程序(业务逻辑)是否符合接口文档的规范
  3. 接口测试不可忽视的点:安全、效率(响应时间)、性能
图片.png

2. 接口测试怎么做?(实现流程)

模拟客户向服务端发送数据,然后查看响应
要素1:定位服务器资源,通过URL
要素2:模拟用户,提交数据
要素3:查看响应结果,是否符合预期

3. 接口测试的分类

4. 接口测试环境搭建

搭建接口测试的环境,运行程序(就是将程序部署到测试主机/服务器上,在测试服务器上运行程序,验证功能是否正常)
(1) 运维或开发实现部署,正常运行
(2) 测试自己搭建(根据开发语言选择java 或 python,把项目复制进去,启动项目 python run_server.py,测试 http://127.0.0.1:8000/api/departments,如果有相应数据,代表程序已安装完成并正常启动)

sqlite是轻量级的数据库,可以用在移动端,使用SQLiteStudio连接工具查看详细的数据表结构
任何系统都可以归纳为【数据 + 数据操作】,而数据操作无非就是增删改查,即表的增删改查操作

图片.png 图片.png

5. RESTful 风格

规范了URL的实现方式,提交的数据的实现方式,响应数据的实现方式
从程序的易读性、可维护性方面所做的考虑


要素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:键=值&键=值)
要素3:200 一条/多条记录

404 资源路径有误
505 服务器异常

6. JSON

语法:
格式1(JSON对象):{“key1”:”value1”, “key2”:”value2”, “key3”:”value3”, … … “keyN”:”valueN” }
格式2(JSON数组):[{“key1”:”value1”, “key2”:”value2”, “key3”:”value3”, … … “keyN”:”valueN” }],[],[],… …[]
格式3(对象和数组复合){“key1”:”value1”,”key2”:”value2”,[],[]…}

7. 接口文档的生成

POST 请求新增数据时,数据格式是JSON格式的,必须设置浏览器的 http 请求头(Content-Type: application/json;),不然会当成普通文本处理,为了不让提交的数据格式显示乱码,可以在HTTP头字段中增加编码集(charset=utf-8,支持世界所有字符)

8. Jmeter

思考:使用 Jmeter做高并发,对某一个查询接口,执行100次,如何去做?50个用户同时请求,如何操作?

下载并解压Jmeter 后必须确保本机上有Java 运行环境,否则运行不了(这也是Java 做不出像QQ、迅雷这样的C/S客户端程序的原因)

9. 性能测试和压力测试的区别

性能:内在 -- 程序的算法,重点关注程序的响应时间
压力:外在 -- 服务器的配置、负载能力

10. Jmeter支持数据库测试

如何确认接口返回的数据有没有遗漏?-- Jmeter

Jmeter支持Java 程序测试

Jmeter安装路径不能有空格,不能有中文字符,如D:\develop\JDK,D:\develop\JRE

11. Jmeter 目录结构

backups:缓存备份,防止数据、脚本丢失
bin:存储了Jmeter的可执行程序,如启动程序ApacheJMeter.jar、jmeter.bat(Windows启动,黑窗口不可关闭) 、jmeter.sh(Linux启动,黑窗口不可关闭)
docs:存储了Jmeter整合的功能(java的API文档,可进行Java程序的拓展)
extras:额外的功能
lib:存储的是库文件
licences:版权证书
printable_docs:Jmeter使用帮助文档

12. Jmeter 使用

创建测试计划 > 在计划上创建线程组 > 在线程组上添加sampler,创建HTTP 请求 > 在计划上添加监听器察看结果树(即查看响应)> 工具栏绿色三角执行

13. Jmeter 组件:线程组

进程:正在运行中的程序
线程:进程中的执行线索(一个进程中可以有多个执行线索,如口型和声音对不上)
线程组:按照线程的性质,对线程进行分组

Jmeter 中,进程 – 测试计划,线程组 – 线程组,线程 – 线程组属性中的线程数

并发执行:多个线程同时执行,特点是执行结束的顺序和线程的启动顺序不一定一致
顺序执行:按照线程的启动顺序,依次执行

默认情况下,线程组中的线程是并发执行的,每一个线程都要执行组内的 http 请求
勾选测试计划属性中的“独立运行每个线程组”复选框,则线程将顺序执行

注意:2)和3)不能同时使用,否则会有冲突

14. Jmeter 参数化

setUp Thread Group :用于程序主体执行所需的资源加载(初始化)操作
tearDown Thread Group:用于程序正式关闭之前,将数据保存至内存(本地磁盘)

上一篇下一篇

猜你喜欢

热点阅读