API测试理论 - QATWer/QA-Sharing GitHub Wiki
参考资料
内部
外部
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