requests接口测试的一些请求构建和断言

import requests
import unittest
import pystache
from hamcrest import *
from jsonpath import jsonpath


class Test(unittest.TestCase):

    def test_query(self):
        payload = {
            "file": 3,
            "name": "zcc",
        }
        response = requests.post('https://httpbin.testing-studio.com/post',
                                 json=payload)
        print(response.status_code)
        # print(response.content)  # 二进制文本
        # print(response.text)   #  response.text = response.content + response.encoding
        # print(response.json())

    def test_mustache(self):
        result = pystache.render('Hi {
   
   {person}}', {'person': 'zcc'})  # Hi zcc
        assert result == 'Hi zcc'

    def test_json_path(self):
        response = requests.get('https://home.testing-studio.com/categories.json')
        # print(response.text)
        # print(jsonpath(response.json(), '$..name'))
        assert jsonpath(response.json(), '$..name')[0] == '开源项目'
        assert jsonpath(response.json(), '$..name')[3] == '用户端测试'

    def test_hamcrest(self):
        response = requests.get('https://home.testing-studio.com/categories.json')
        assert_that(jsonpath(response.json(), '$..name')[0], equal_to('开源项目'))

    def test_json_schema(self):
        # todo: 自定义生成schema
        pass

    def test_cookies_by_headers(self):
        """
        传递cookie by headers
        :return:
        """
        header = {
            "Cookie": 'number=2015130039',
            'User-Agent': 'python-requests/zcc'
        }
        response = requests.get('https://httpbin.testing-studio.com/cookies',
                                headers=header)
        print(response.request.headers)

    def test_cookies_by_cookies(self):
        """
        传递cookie by cookies
        :return:
        """
        cookies = {
            "number": '2015130039',
            "name": 'zcc',
        }
        response = requests.get('https://httpbin.testing-studio.com/cookies',
                                cookies=cookies)
        print(response.request.headers)

    def test_auth(self):
        """
        使用auth认证此类请求
        :return:
        """
        from requests.auth import HTTPBasicAuth
        response = requests.get('https://httpbin.testing-studio.com/basic-auth/balance/123',
                                auth=HTTPBasicAuth("balance", "123"))
        print(response.status_code)


if __name__ == '__main__':
    unittest.main()

猜你喜欢

转载自blog.csdn.net/chuancheng_zeng/article/details/111188218
今日推荐