使用Axios、Mocha、Chai和JavaScript进行API自动化
我们将使用 Axios 进行 API 自动化测试,结合 Mocha 作为测试框架,Chai 用于断言。由于 JavaScript 的流行性,我们将使用 JavaScript 编写测试代码。通过本教程,您将学会从零开始搭建一个 API 自动化测试框架。请按照以下步骤逐步操作,如果您对某些步骤已经熟悉,可以直接跳到下一步。
先决条件
在开始之前,请确保满足以下条件:
-
安装 Node.js
确保您的系统已安装 Node.js。 -
安装 Visual Studio Code
推荐使用 Visual Studio Code 来编写和格式化代码,但您也可以选择其他文本编辑器。 -
打开 Visual Studio Code
启动 Visual Studio Code 并准备好项目环境。 -
创建项目目录
打开终端并运行以下命令创建项目目录:mkdir api-testing-axios-mocha-chai-javascript cd api-testing-axios-mocha-chai-javascript -
初始化项目
创建一个新的package.json文件:npm init -y生成的
package.json文件内容如下:{ "name": "api-testing-axios-mocha-chai-javascript", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "keywords": [], "author": "", "license": "ISC" } -
安装必要依赖
运行以下命令安装所需的依赖包:npm install --save axios mocha chai mochawesome rimraf @faker-js/faker properties-reader安装完成后,
package.json文件将更新为:{ "dependencies": { "axios": "^1.0.0", "mocha": "^10.0.0", "chai": "^4.3.0", "mochawesome": "^7.1.3", "rimraf": "^3.0.2", "@faker-js/faker": "^7.3.0", "properties-reader": "^2.2.0" } } -
创建
.gitignore文件
为了避免将不必要的文件提交到版本控制中,创建一个.gitignore文件并添加以下内容:node_modules/
test-results/
logs/
创建 API 测试
接下来,我们将创建一个用于保存 API 测试代码的目录,并编写测试脚本。
-
创建测试目录
在项目根目录下运行以下命令:mkdir api-tests -
编写 GET 请求测试
创建api-tests/get_request.js文件,添加以下代码:const axios = require("axios"); const { expect } = require("chai"); describe("GET API 请求测试", async () => { it("应该能够获取用户列表", async () => { const res = await axios.get("https://reqres.in/api/users?page=2"); console.log(res.data); expect(res.data.page).to.equal(2); expect(res.data.per_page).to.equal(6); }); });运行测试:
npx mocha ./api-tests/get_request.js --timeout=30000 -
编写 POST 请求测试
创建api-tests/post_request.js文件,添加以下代码:const axios = require("axios"); const { expect } = require("chai"); const { faker } = require("@faker-js/faker"); describe("POST API 请求测试", async () => { it("应该能够创建用户", async () => { const randomName = faker.name.findName(); const randomJobTitle = faker.name.jobTitle(); const res = await axios.post("https://reqres.in/api/users", { name: randomName, job: randomJobTitle, }); console.log(res.data); expect(res.data.name).to.equal(randomName); expect(res.data.job).to.equal(randomJobTitle); }); }); -
编写 PUT 请求测试
创建api-tests/put_request.js文件,添加以下代码:const axios = require("axios"); const { expect } = require("chai"); const { faker } = require("@faker-js/faker"); describe("PUT API 请求测试", async () => { it("应该能够更新用户信息", async () => { const randomName = faker.name.findName(); const randomJobTitle = faker.name.jobTitle(); const res = await axios.put("https://reqres.in/api/users/2", { name: randomName, job: randomJobTitle, }); console.log(res.data); expect(res.data.name).to.equal(randomName); expect(res.data.job).to.equal(randomJobTitle); }); }); -
编写 PATCH 请求测试
创建api-tests/patch_request.js文件,添加以下代码:const axios = require("axios"); const { expect } = require("chai"); const { faker } = require("@faker-js/faker"); describe("PATCH API 请求测试", async () => { it("应该能够更新用户名称", async () => { const randomName = faker.name.findName(); const res = await axios.patch("https://reqres.in/api/users/2", { name: randomName, }); console.log(res.data); expect(res.data.name).to.equal(randomName); }); }); -
编写 DELETE 请求测试
创建api-tests/delete_request.js文件,添加以下代码:const axios = require("axios"); const { expect } = require("chai"); describe("DELETE API 请求测试", async () => { it("应该能够删除用户", async () => { const res = await axios.delete("https://reqres.in/api/users/2"); console.log(res.status); expect(res.status).to.equal(204); }); });
生成测试报告
运行以下命令生成测试报告:
npx mocha ./api-tests --timeout=30000 --reporter mochawesome
生成的报告将包含 JSON 和 HTML 格式的详细测试结果。
总结
通过本教程,您已经学习了如何使用 Axios、Mocha 和 Chai 搭建一个完整的 API 自动化测试框架。您可以根据实际需求扩展测试用例,并生成详细的测试报告以便分析测试结果。希望本教程对您有所帮助!
原文链接: https://www.codewithmmak.com/blog/api-automation-using-axios-mocha-chai-and-javascript/
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- 您需要了解的OpenAI Assistants API功能 – PageOn.ai
- DRF库详解:用Django轻松搭建功能强大的API服务
- 一文搞懂在 HTTP 如何 one-api 调用,实操指南来袭!
- 探索海洋数据的宝库:Amentum海洋数据探测API的潜力
- 云原生 API 网关 APISIX 入门教程
- API Key 密钥:深入理解与应用
- 2025年国内免费生成式 AI API 平台大盘点:探索国产大模型的开放能力
- 使用DeepSeek和Claude绘制出高质量的SVG 图片
- 精通REST API:解析iOS开发中的核心要点
- ASP.NET Core Web API 的授权指南 – Auth0
- Supertest:如何像专业人士一样测试API – Testim博客
- Next.js API 路由:GET 和 POST 请求示例