要实现使用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 接口测试的完整攻略,其中包含两个示例说明。