API测试理论 - QATWer/QA-Sharing GitHub Wiki

参考资料

内部

1 API Testing

外部

1 https://www.soapui.org/learn/functional-testing/api-testing-101.html
2 https://dzone.com/articles/api-testing-and-automation-101-the-essential-guide
3 https://www.guru99.com/api-testing.html
4 https://www.softwaretestingmaterial.com/best-api-testing-tools/
5 https://matthewlehner.net/rails-api-testing-guidelines
6 https://smartbear.com/learn/api-testing/practical-tips-for-api-security/

工具框架选择篇

工具/框架 开源/免费 语言 上手容易度 CI/CD BDD Mocking 其他
Jmeter 开源 工具,脚本支持Groovy/JS/Scala 容易 不支持 不支持 不推荐使用Mocking 支持录制
Postman 免费版/企业版 工具,脚本支持JS 容易 支持 不支持 支持 支持Contract测试,API监控,方便写API doc
SoapUI 免费版/企业版 工具 容易 支持 不支持 支持 支持soap&rest
Katalon Studio 免费版/企业版,脚本支持Groovy/Java 工具, 容易 支持 Not now 支持soap&rest,mobile&ui测试
RestAssured 开源 Java/Scala 支持 支持 支持
Karate 开源 Java 支持 支持 支持 支持soap&rest&websocket,性能测试
SuperTest 开源 JS 支持 容易 不支持
Cypress 开源 JS 支持 支持 支持
CodeceptJS 开源 JS 支持 不支持 不支持
Gatling 开源 Scala 支持 不支持 不支持

框架搭建篇

测试框架组成

1 测试执行管理框架(组织测试用例执行,测试报告日志管理)

1.1 JS

Jest / Mocha

1.2 Java

JUnit

1.3 Python

unitest / pytest

Report

Allure: can be applied for languages: https://docs.qameta.io/allure/#_installing_a_commandline

2 API处理框架(请求响应)

2.1 JS

SuperTest

2.2 Java

RestAssured

2.3 Python

'requests' module Tavern

2.4 Scala

Gatling

3 断言框架

3.1 JS

Chai

3.2 Java

3.3 Python

'pyassert' module

4 Server Mocking框架

4.1 JS

Mountebank/Sinon/Nock

4.2 Java

WireMock

5 CI/CD框架

Jenkins/CircleCI/GoCD

项目可采取的框架搭建

1 工具

1 Postman + Newman + Jenkins
2 Jmeter + Jenkins

2 框架

2.1 JS

1 Jest + SuperTest + Jenkins
2 Mocha + SuperTest + Jenkins

2.2 Java

1 RestAssured 2 Karate

2.3 Python

1 pytest + Tavern 2 unittest