1. 安裝必要的軟件包

首先,您需要安裝以下庫來支持我們的測試工作。運行以下命令以安裝所需的依賴項:

npm install mocha chai supertest --save-dev

安裝完成后,您可以在 package.json 文件中檢查這些依賴項是否已正確添加。


2. 創建一個名為 login.js 的新文件

在項目中創建一個名為 login.js 的文件,并在文件中導入必要的庫 SupertestChai。以下是導入代碼的示例

const request = require("supertest");
const { expect } = require("chai");

3. 創建一個函數來存儲端點和有效負載

接下來,我們需要創建一個函數,用于發送 API 請求。以下是一個示例函數,它接受有效負載并發送 POST 請求到指定的端點:

async function login(payload) {
  const response = await request("https://reqres.in")
    .post("/api/login")
    .send(payload);
  return response;
}

此函數將返回 API 的響應結果,供后續測試用例使用。


4. 創建測試場景和測試用例

在這一部分,我們將定義測試場景和測試用例。使用 describe 函數為測試場景命名,使用 it 函數為具體的測試用例命名。以下是一個示例代碼:

describe("Login Feature", () => {
  it("Success Login", async () => {
    const payload = {
      "email": "eve.holt@reqres.in",
      "password": "cityslicka"
    };
    const response = await login(payload);

    // 斷言:驗證響應狀態碼是否為 200
    expect(response.status).to.equal(200);
  });  it("Failed Login", async () => {
    const payload = {
      "email": "peter@klaven"
    };
    const response = await login(payload);    // 斷言:驗證響應狀態碼是否為 400
    expect(response.status).to.equal(400);
  });
});

在上述代碼中,我們分別測試了成功登錄和失敗登錄兩種情況,并通過斷言驗證了 API 的響應狀態碼。


5. 運行測試程序

完成代碼編寫后,您可以通過以下命令運行測試程序:

npx mocha login.js

如果測試通過,您將在終端中看到測試結果的輸出。

此外,您還可以將運行命令添加到 package.json 文件的 scripts 部分中,例如:

"scripts": {
  "test": "mocha login.js"
}

然后,您可以直接運行以下命令來執行測試:

npm test

完整代碼示例

以下是完整的 API 測試代碼,供您參考:

const request = require("supertest");
const { expect } = require("chai");

async function login(payload) {
  const response = await request("https://reqres.in")
    .post("/api/login")
    .send(payload);
  return response;
}describe("Login Feature", () => {
  it("Success Login", async () => {
    const payload = {
      "email": "eve.holt@reqres.in",
      "password": "cityslicka"
    };
    const response = await login(payload);    // 斷言:驗證響應狀態碼是否為 200
    expect(response.status).to.equal(200);
  });  it("Failed Login", async () => {
    const payload = {
      "email": "peter@klaven"
    };
    const response = await login(payload);    // 斷言:驗證響應狀態碼是否為 400
    expect(response.status).to.equal(400);
  });
});

擴展閱讀

在實際項目中,您可以根據需要添加更多的斷言來驗證 API 的響應內容,例如響應體中的字段值、錯誤信息等。有關更多斷言的使用方法,請參考 Chai 官方文檔

通過本教程,您已經掌握了如何使用 Mocha 和 Chai 在 JavaScript 中實現自動化 API 測試。希望這些內容對您的開發工作有所幫助!

原文鏈接: https://medium.com/@cofiali53/automation-api-testing-in-javascript-using-mocha-chai-and-supertest-a-beginners-guide-47e317e04501
熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
返回頂部
上一篇
使用CloudFront反向代理API Gateway以防止CORS問題
下一篇
Supertest:如何像專業人士一樣測試API - Testim博客
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
一区二区三区视频在线观看| 美女精品一区二区| 国产精品久久久久久久第一福利| 有坂深雪av一区二区精品| 香蕉影视欧美成人| 天天综合网天天综合色| 51久久夜色精品国产麻豆| 美腿丝袜亚洲综合| 欧美人动与zoxxxx乱| 日韩电影免费一区| 欧美日韩高清一区| 欧美日本一区二区三区四区| 成人av动漫网站| 亚洲制服丝袜av| 日韩三级中文字幕| 免费在线观看一区二区三区| 97精品视频在线观看自产线路二| 亚洲欧洲日本在线| 91一区二区在线| 国产丝袜美腿一区二区三区| 亚洲国产精品99久久久久久久久| 欧美精品久久天天躁| www.欧美日韩国产在线| 亚洲aaa精品| 国产精品私人自拍| 亚洲综合色噜噜狠狠| 国产一区二区不卡老阿姨| 亚洲国产综合91精品麻豆| 久久新电视剧免费观看| 欧美一区二区在线免费播放| 风间由美中文字幕在线看视频国产欧美| 午夜精品123| 国内精品国产成人国产三级粉色| 亚洲高清久久久| 亚洲精品乱码久久久久久| 日韩一区二区在线观看视频| 欧美电影免费观看完整版| 欧美一级黄色大片| 91网站在线观看视频| 国产情人综合久久777777| 亚洲尤物在线视频观看| 青青草原综合久久大伊人精品优势| 国产女主播一区| 国产精品毛片久久久久久| 精品国产免费一区二区三区香蕉| 国产精品久久久久国产精品日日| 国产色综合一区| 久久久久久久久99精品| 欧美一级高清大全免费观看| 粉嫩在线一区二区三区视频| 久久机这里只有精品| 香蕉av福利精品导航| 一区二区三区日韩在线观看| 国产91在线观看丝袜| 国产成人午夜精品5599| 成人免费黄色在线| 精品影视av免费| 在线看一区二区| 一区二区三区在线免费播放| 天堂资源在线中文精品| 成人精品一区二区三区四区| 日韩一级黄色片| 视频一区二区中文字幕| 91在线免费播放| 中文字幕不卡三区| 亚洲日本在线视频观看| 亚洲丰满少妇videoshd| a4yy欧美一区二区三区| 精品视频在线看| 精品一区二区综合| 亚洲国产精品ⅴa在线观看| 日本成人在线不卡视频| 欧美日韩卡一卡二| 国产精品美女www爽爽爽| 欧美综合欧美视频| 一级做a爱片久久| 91麻豆产精品久久久久久| 欧美成人精品高清在线播放| 久久综合九色综合97_久久久| 色妹子一区二区| 中文字幕一区av| 欧美亚洲动漫另类| 免费在线观看日韩欧美| 国产大陆a不卡| 日韩黄色免费网站| 亚洲mv在线观看| 国产精品福利电影一区二区三区四区| 欧美日本在线观看| 国产乱码一区二区三区| 久久久久97国产精华液好用吗| 成人一道本在线| 国产精品美女久久久久久| 日韩欧美一区二区视频| 色综合 综合色| 日本免费新一区视频| 精品成a人在线观看| 午夜欧美视频在线观看| 欧美国产精品专区| 欧美一区二区三区四区久久| 丁香一区二区三区| 亚洲小少妇裸体bbw| 日韩精品午夜视频| 成人午夜精品在线| 天天色图综合网| 亚洲成人第一页| 国产精品久线在线观看| 亚洲精品国产高清久久伦理二区| 亚洲电影你懂得| 国产麻豆一精品一av一免费 | 美国毛片一区二区三区| 欧美系列一区二区| 成人a免费在线看| 欧美乱熟臀69xxxxxx| 精品福利在线导航| 亚洲gay无套男同| 大桥未久av一区二区三区中文| 不卡的av电影在线观看| 在线不卡一区二区| 久久久精品免费网站| 国产视频一区在线播放| 精品福利在线导航| 久久综合色综合88| 欧美xingq一区二区| 亚洲最新在线观看| 亚洲一区二区在线免费看| 亚洲影视资源网| 99久久久无码国产精品| 欧美激情一区三区| 国产精品白丝jk黑袜喷水| 欧美一区二区三级| 亚洲18女电影在线观看| 欧美色窝79yyyycom| 五月激情综合网| 欧美一级高清片在线观看| 国产亚洲婷婷免费| 91久久国产最好的精华液| 欧美精品一区视频| 美国十次综合导航| 欧美一二区视频| 国产一区二区三区四区五区入口 | 日韩精品高清不卡| 欧美成人乱码一区二区三区| 亚洲精品成人天堂一二三| 久99久精品视频免费观看| 色999日韩国产欧美一区二区| 日韩 欧美一区二区三区| 91麻豆精品国产91久久久使用方法 | 欧美视频一区二区三区四区| 色88888久久久久久影院按摩| 成人精品免费看| 欧美丝袜丝nylons| 日韩精品最新网址| 国产精品视频免费| 亚洲综合av网| 蜜桃91丨九色丨蝌蚪91桃色| 裸体歌舞表演一区二区| 懂色一区二区三区免费观看| 成人动漫在线一区| 欧美男人的天堂一二区| 中文字幕国产一区| 国产精品一二一区| 精品一区二区在线播放| 日韩国产在线一| 麻豆视频一区二区| 久久er精品视频| 蜜桃精品在线观看| 日本91福利区| 极品美女销魂一区二区三区| 久久精品国产精品亚洲综合| 日本vs亚洲vs韩国一区三区 | 精品久久久久久久久久久久久久久| 9191久久久久久久久久久| 国产精品一二三四五| 亚洲视频香蕉人妖| 午夜成人免费电影| 国产激情一区二区三区四区| 丁香桃色午夜亚洲一区二区三区| av午夜一区麻豆| 这里只有精品免费| 国产无遮挡一区二区三区毛片日本 | 国产精品久久三区| 91视频com| 亚洲一区日韩精品中文字幕| 精品伦理精品一区| 欧美丝袜丝交足nylons图片| 《视频一区视频二区| 91亚洲大成网污www| 一色屋精品亚洲香蕉网站| 国产成人av电影免费在线观看| 日韩欧美一级二级| 成人av电影在线观看| 亚洲国产视频直播| 国产精品乱码妇女bbbb| 国产美女精品在线| 丁香激情综合五月| 韩国精品主播一区二区在线观看| 综合电影一区二区三区| 国产激情一区二区三区| 久久99久久99| 99国产精品国产精品毛片|