requests接口测试断言——JSON/XML响应断言

1.响应结果

对于请求头的断言
    def test_header(self):
        r = requests.get('http://httpbin.testing-studio.com/get', headers={"h": "mydemo"})
        print(r.text)
        print(r.json())
        assert r.status_code == 200
        assert r.json()['headers']["H"] == "mydemo" 
2.json断言
两种方式:一种使用assert,另一种使用jsonpath(更简单方便一些)
  #对响应进行断言,使用jsonpath
    def test_json_response(self):
        r = requests.get('https://home.testing-studio.com/categories.json')
        print(r.json())
        assert r.json()["category_list"]["categories"][0]["name"] == "霍格沃兹测试学院公众号"
        assert_that(r.json()["category_list"]["categories"][0]["name"],equal_to("霍格沃兹测试学院公众号"))
        print(jsonpath(r.json(),"$..name"))
        assert jsonpath(r.json(),"$..name")[0]=="霍格沃兹测试学院公众号"

 jsonpath使用指南:

 
3.xml断言
request对xml格式封装的不强,可以使用request_xml插件, 也可以自己封装一个xml的解析
 
4. hamcrest
有时候断言需要更严格一些,带一些逻辑的,比如and or这些,这个时候assert就不是那么强大了,这个时候可以使用hamcrest
 
 
 
assert_that
def test_json_response(self):
    r = requests.get('https://home.testing-studio.com/categories.json')
    print(r.json())
    # assert r.json()["category_list"]["categories"][0]["name"] == "霍格沃兹测试学院公众号"
    assert_that(r.json()["category_list"]["categories"][0]["name"],equal_to("霍格沃兹测试学院公众号”))
posted @ 2020-05-18 18:02  zhaikunkun  阅读(1356)  评论(0)    收藏  举报