天天看點

技術分享 | 接口自動化測試如何進行認證?

本文節選自霍格沃茲測試開發學社内部教材

在 HTTP 中,基本認證是允許使用 HTTP 協定的使用者在請求時,提供使用者名和密碼的一種方式。在進行基本認證的過程裡,請求的 HTTP 頭字段會包含 Authorization 字段: ​

​Authorization: Basic <憑證>​

​,該憑證是使用者和密碼的組和的 base64 編碼。碰到這種類型的接口,使用 Java 的 REST Assured 或者 Python 的 Requests 均可解決。

實戰練習

Python 版本

  1. 使用 HTTPBasicAuth 類将 HTTP 基本身份驗證附加到給定的 Request 對象
  2. 通過 auth 參數傳遞認證資料資訊
import requests

from requests.auth import HTTPBasicAuth

def test_auth():
    url = "https://httpbin.ceshiren.com/basic-auth/ad/123"
    r = requests.get(url = url, 
    auth = HTTPBasicAuth("ad", "123"))
    assert r.json()["user"]=='ad'      

Java 版本

通過 ​

​given()​

​​ 方法提供的 ​

​auth().basic()​

​ 方法完成使用者名密碼的驗證,第一個參數輸入使用者名,第二個參數輸入密碼。

import static io.restassured.RestAssured.*;

public class Requests {
    public static void main(String[] args) {
        given().
                auth().basic("ad", "123").
        when().
                get("https://httpbin.ceshiren.com/basic-auth/ad/123").
        then().statusCode(200).log().all();
    }
}