技术分享 | 接口自动化测试如何进行认证?

举报
霍格沃兹测试开发学社 发表于 2022/08/30 14:46:37 2022/08/30
【摘要】 本文节选自霍格沃兹测试开发学社内部教材在 HTTP 中,基本认证是允许使用 HTTP 协议的用户在请求时,提供用户名和密码的一种方式。在进行基本认证的过程里,请求的 HTTP 头字段会包含 Authorization 字段: Authorization: Basic <凭证>,该凭证是用户和密码的组和的 base64 编码。碰到这种类型的接口,使用 Java 的 REST Assured 或...

本文节选自霍格沃兹测试开发学社内部教材

在 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();
    }
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。