关于python实现requests接口测试的问题

  • Post category:http

要实现使用Python进行接口测试,可以使用 Python 的 requests 库来发送 HTTP 请求,并且使用 Python 的 unittest 测试框架对接口测试进行自动化测试。

以下是具体步骤:

一、安装 requests 库

首先需要在本地安装 Python 和 requests 库。可以通过 pip 命令来安装 requests 库,在命令行中输入:

pip install requests

二、编写测试用例

使用 unittest 测试框架编写测试用例。例如,对于一个接口 http://test.com/login,可以编写如下测试用例:

import unittest
import requests

class TestLogin(unittest.TestCase):

    def test_login_success(self):
        url = 'http://test.com/login'
        data = {'username': 'testuser', 'password': '123456'}
        r = requests.post(url, data=data)
        self.assertEqual(r.status_code, 200)
        self.assertEqual(r.json()['code'], 0)

    def test_login_failed(self):
        url = 'http://test.com/login'
        data = {'username': 'testuser', 'password': 'wrongpass'}
        r = requests.post(url, data=data)
        self.assertEqual(r.status_code, 200)
        self.assertEqual(r.json()['code'], 1)

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

三、运行测试用例

在命令行中运行该文件,即可进行测试。例如,在命令行中输入:

python test_login.py

则会运行该文件中的所有测试用例,并输出测试结果。

示例 1:

假设要测试的接口是一个获取用户信息的接口 http://test.com/userinfo,需要传入参数 token,可以编写如下测试用例:

import unittest
import requests

class TestUserInfo(unittest.TestCase):

    def setUp(self):
        self.url = 'http://test.com/userinfo'

    def test_userinfo_success(self):
        token = 'abcdefgh'
        headers = {'Authorization': 'Bearer {}'.format(token)}
        r = requests.get(self.url, headers=headers)
        self.assertEqual(r.status_code, 200)
        self.assertEqual(r.json()['code'], 0)

    def test_userinfo_failed(self):
        token = 'invalid_token'
        headers = {'Authorization': 'Bearer {}'.format(token)}
        r = requests.get(self.url, headers=headers)
        self.assertEqual(r.status_code, 200)
        self.assertEqual(r.json()['code'], 1)

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

示例 2:

假设要测试的接口是一个添加商品的接口 http://test.com/add_product,需要传入参数 product_name、product_price、product_desc,可以编写如下测试用例:

import unittest
import requests

class TestAddProduct(unittest.TestCase):

    def setUp(self):
        self.url = 'http://test.com/add_product'

    def test_add_product_success(self):
        data = {'product_name': 'test_product', 'product_price': 10, 'product_desc': 'this is a test'}
        r = requests.post(self.url, data=data)
        self.assertEqual(r.status_code, 200)
        self.assertEqual(r.json()['code'], 0)

    def test_add_product_failed(self):
        data = {'product_name': 'test_product', 'product_price': -10, 'product_desc': 'this is a test'}
        r = requests.post(self.url, data=data)
        self.assertEqual(r.status_code, 200)
        self.assertEqual(r.json()['code'], 1)

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

以上就是关于使用 Python 实现 requests 接口测试的完整攻略,其中包含两个示例说明。