聊两个API测试⼯工具
2
REST-ASSURED 和 SUPERTEST
AGENDA
3
■ 13:30-13:40 签到
■ 13:40-13:50 开场(破冰)
■ 13:50-14:50 session
■ 14:50-15:00 茶歇
■ 15:00-15:50 话题讨论
■ 15:50-16:00 反馈
REST ASSURED
什么是API 测试
5
■ API测试是软件测试的⼀一种,通过直接调⽤用API接⼝口来对其服务进⾏行验证,其测试的内容可以包括功能、性能和安全。
为什么要做API测试
6
单体服务应⽤用 ~ 保证业务价值
后台服务应⽤用 ~ 降低前端的测试难度
集群服务应⽤用 ~ 确保每个应⽤用个体的质量可追溯
怎么做API测试
7
REST ASSURED
8
RESTful
基于JAVA
简单易⽤用
Gradle & Maven
基本⽤用法
REQUEST — DATA IN URL
10
REQUEST — DATA IN PARAMETERS
11
REQUEST — PARAMETER IN PATH
12
RESPONSE — ASSERTION
13
进阶⽤用法
REQUEST - POST DATA IN STRING
15
REQUEST - POST DATA IN MAP
16
REQUEST - POST DATA IN OBJECT
17
RESPONSE - EXTRACT FRAGMENT
18
RESPONSE - EXTRACT ALL
19
RESPONSE - JASON SCHEMA VALIDATION
20
⾼高级⽤用法
RESPONSE - 复⽤用RESPONSE数据
22
RESPONSE - GROOVY COLLECTION 1
23
RESPONSE - GROOVY COLLECTION 2
24
RESPONSE - GROOVY COLLECTION 3
25
SUPERTEST
SUPERTEST
Super-agent driven library for testing node.js HTTP servers using a fluent API
27
SUPERAGENT
SUPERTEST
BASIC(基本⽤用法)
28
ASSERTIONS(断⾔言)
.expect(status[, fn]) Assert response status code.
.expect(status, body[, fn]) Assert response status code and body.
.expect(body[, fn]) Assert response body text with a string, regular expression, or parsed body object.
.expect(field, value[, fn]) Assert header field value with a string or regular expression.
.expect(function(res) {}) Pass a custom assertion function. It'll be given the response object to check. If the check fails, throw an error.
29
INTEGRATE WITH OTHER FRAMEWORK(优秀实践)
30
POST
31
SUMMARY(⼩小结)
32
ADVANTAGES DISADVANTAGES
易于跑CI
更快
轻便,不⽤用IDE
调试不便
https://fengmk2.com/blog/2011/fibonacci/nodejs-python-php-ruby-lua.html
DEMO
PRINCIPLE(要素)
34
MODEL(模型)
35
待测API
API测试⼯工具 调⽤用 验证
报告测试数据
QUESTONS(问题)
分享⼀一下:⼤大家在做API测试的时候,碰到过哪些棘⼿手的问题?
36
THANK YOU