用Unittest+requests实现对实验二中开发的接口进行自动化测试
时间: 2024-03-11 14:44:13 浏览: 114
python+unittest+requests实现接口自动化的方法
好的,我们可以使用Unittest和requests库来对实验二中开发的接口进行自动化测试。假设我们的接口有以下四个:
1. 添加用户接口:URL为http://localhost:8000/add_user,请求方式为POST,需要传递JSON格式的数据,包括name和age两个字段。
2. 删除用户接口:URL为http://localhost:8000/delete_user/{user_id},请求方式为DELETE,需要在URL中传递待删除用户的ID。
3. 修改用户接口:URL为http://localhost:8000/update_user/{user_id},请求方式为PUT,需要在URL中传递待修改用户的ID,同时需要传递JSON格式的数据,包括name和age两个字段。
4. 查询用户接口:URL为http://localhost:8000/get_user/{user_id},请求方式为GET,需要在URL中传递待查询用户的ID。
接下来,我们来编写对应的自动化测试代码,示例如下:
```python
import unittest
import requests
class TestUserApi(unittest.TestCase):
def setUp(self):
self.base_url = "http://localhost:8000"
self.test_user_id = 123
self.test_user_data = {"name": "Tom", "age": 18}
def test_add_user(self):
url = self.base_url + "/add_user"
response = requests.post(url, json=self.test_user_data)
self.assertEqual(response.status_code, 200)
def test_delete_user(self):
url = self.base_url + "/delete_user/{}".format(self.test_user_id)
response = requests.delete(url)
self.assertEqual(response.status_code, 200)
def test_update_user(self):
url = self.base_url + "/update_user/{}".format(self.test_user_id)
test_user_data_updated = {"name": "Jerry", "age": 20}
response = requests.put(url, json=test_user_data_updated)
self.assertEqual(response.status_code, 200)
def test_get_user(self):
url = self.base_url + "/get_user/{}".format(self.test_user_id)
response = requests.get(url)
self.assertEqual(response.status_code, 200)
data = response.json()
self.assertEqual(data["name"], "Jerry")
self.assertEqual(data["age"], 20)
if __name__ == '__main__':
unittest.main()
```
在上面的代码中,我们首先定义了一个TestUserApi类,继承了unittest.TestCase类,然后在setUp()方法中定义了一些测试用到的数据,包括接口的URL、待测试的用户ID和用户数据等。接下来,我们分别编写了四个测试方法,分别对应接口的四种操作:添加、删除、修改和查询。在每个测试方法中,我们使用requests库发送相应的HTTP请求,并使用assertEqual()方法来断言返回的状态码和数据是否符合预期。
最后,我们在if __name__ == '__main__'语句中调用unittest.main()方法来运行测试。运行测试时,可以使用命令行工具进入到测试代码所在的目录,然后执行以下命令:
```
python test_user_api.py
```
如果所有的测试用例都通过,那么会输出OK,否则会输出详细的测试报告和错误信息。
阅读全文