Python+requests+unittest执行接口自动化测试详情

  • Post category:Python

下面详细讲解Python+requests+unittest执行接口自动化测试的完整实例教程:

简介

Python+requests+unittest是一种非常常见的接口自动化测试方式。其中Python语言提供了简单易学的语法和丰富的第三方库,requests库提供了方便的HTTP请求封装,unittest库提供了灵活的测试框架和断言方法。这种方式可以方便地对接口进行自动化测试,提高测试效率和保证接口测试的质量。

实例说明

为了说明Python+requests+unittest执行接口自动化测试,我们以测试百度搜索接口的返回结果为例进行说明。

示例1

1. 测试目标

测试百度搜索接口,验证输入关键字后返回的结果是否正确。

2. 测试步骤

a. 安装requests和unittest库:pip install requests unittest

b. 新建测试用例文件test_baidu_search.py并编写测试用例代码如下:

import unittest
import requests

class TestBaiduSearch(unittest.TestCase):
    def test_baidu_search(self):
        url = 'https://www.baidu.com/s'
        params = {'wd': 'python'}
        res = requests.get(url, params=params)
        self.assertIn('Python', res.text)

c. 执行测试用例:python -m unittest test_baidu_search.py

3. 测试结果

执行结果如下:

----------------------------------------------------------------------
Ran 1 test in 0.210s

OK

示例2

1. 测试目标

测试获取天气接口,验证请求返回的状态和数据是否正确。

2. 测试步骤

a. 安装requests和unittest库:pip install requests unittest

b. 新建测试用例文件test_weather.py并编写测试用例代码如下:

import unittest
import requests
import json

class TestWeather(unittest.TestCase):
    def test_weather(self):
        url = 'http://wthrcdn.etouch.cn/weather_mini'
        params = {'city': '北京'}
        res = requests.get(url, params=params, timeout=5)
        self.assertEqual(res.status_code, 200)
        data = json.loads(res.text)
        self.assertEqual(data['desc'], 'OK')
        self.assertIn('北京', data['data']['city'])

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

c. 执行测试用例:python test_weather.py

3. 测试结果

执行结果如下:

----------------------------------------------------------------------
Ran 1 test in 0.210s

OK

总结

以上就是Python+requests+unittest执行接口自动化测试的完整实例教程。通过示例可以看出,使用Python+requests+unittest进行接口自动化测试,代码编写简单,测试效率高,并且可以灵活地对请求和返回结果进行断言验证,保证接口测试的准确性和可靠性。