api...agenda 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session...

37

Upload: others

Post on 03-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论
Page 2: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

聊两个API测试⼯工具

2

REST-ASSURED 和 SUPERTEST

Page 3: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

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 反馈

Page 4: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

REST ASSURED

Page 5: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

什么是API 测试

5

■ API测试是软件测试的⼀一种,通过直接调⽤用API接⼝口来对其服务进⾏行验证,其测试的内容可以包括功能、性能和安全。

Page 6: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

为什么要做API测试

6

单体服务应⽤用 ~ 保证业务价值

后台服务应⽤用 ~ 降低前端的测试难度

集群服务应⽤用 ~ 确保每个应⽤用个体的质量可追溯

Page 7: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

怎么做API测试

7

Page 8: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

REST ASSURED

8

RESTful

基于JAVA

简单易⽤用

Gradle & Maven

Page 9: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

基本⽤用法

Page 10: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

REQUEST — DATA IN URL

10

Page 11: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

REQUEST — DATA IN PARAMETERS

11

Page 12: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

REQUEST — PARAMETER IN PATH

12

Page 13: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

RESPONSE — ASSERTION

13

Page 14: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

进阶⽤用法

Page 15: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

REQUEST - POST DATA IN STRING

15

Page 16: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

REQUEST - POST DATA IN MAP

16

Page 17: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

REQUEST - POST DATA IN OBJECT

17

Page 18: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

RESPONSE - EXTRACT FRAGMENT

18

Page 19: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

RESPONSE - EXTRACT ALL

19

Page 20: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

RESPONSE - JASON SCHEMA VALIDATION

20

Page 21: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

⾼高级⽤用法

Page 22: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

RESPONSE - 复⽤用RESPONSE数据

22

Page 23: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

RESPONSE - GROOVY COLLECTION 1

23

Page 24: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

RESPONSE - GROOVY COLLECTION 2

24

Page 25: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

RESPONSE - GROOVY COLLECTION 3

25

Page 26: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

SUPERTEST

Page 27: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

SUPERTEST

Super-agent driven library for testing node.js HTTP servers using a fluent API

27

SUPERAGENT

SUPERTEST

Page 28: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

BASIC(基本⽤用法)

28

Page 29: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

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

Page 30: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

INTEGRATE WITH OTHER FRAMEWORK(优秀实践)

30

Page 31: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

POST

31

Page 32: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

SUMMARY(⼩小结)

32

ADVANTAGES DISADVANTAGES

易于跑CI

更快

轻便,不⽤用IDE

调试不便

https://fengmk2.com/blog/2011/fibonacci/nodejs-python-php-ruby-lua.html

Page 33: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

DEMO

Page 34: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

PRINCIPLE(要素)

34

Page 35: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

MODEL(模型)

35

待测API

API测试⼯工具 调⽤用 验证

报告测试数据

Page 36: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

QUESTONS(问题)

分享⼀一下:⼤大家在做API测试的时候,碰到过哪些棘⼿手的问题?

36

Page 37: API...AGENDA 3 13:30-13:40 签到 13:40-13:50 开场(破冰) 13:50-14:50 session 14:50-15:00 茶歇 15:00-15:50 话题讨论

THANK YOU