错误解决——使用unittest完成悟空项目【添加日志】+【删除日志】测试,运行结果{‘code‘: 500, ‘msg‘: ‘服务器响应异常‘}、{‘code‘: 500, ‘msg‘: ‘没有权限‘}
一、添加日志
【成功标志】
运行成功后无报错,进入悟空首页发现新增日志成功
【问题描述】
- 错误版添加日志代码如下:
import unittest
import requests
class TestCase(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
cls.HOST="http://192.168.10.188:8080"
cls.COOKIES = {"Admin-Token":"3cb887575a194a7bb202d4848dd4524c"}
def test_2_tianjiarizhi(self):
request_url=f'{self.HOST}/OaLog/addOrUpdate'
request_method='POST'
request_body={"batchId":"b653386ddef27e32a5a753dee114b01d",
"businessIds":"","categoryId":"1","contractIds":"",
"content":"python学习1","tomorrow":"python学习1",
"contactsIds":"","question":"头发-2",
"sendUserIds":"","sendDeptIds":"",
"customerIds":"",
}
response=requests.post(request_url,data=request_body,
cookies=self.COOKIES,timeout=3
)
self.assertTrue(response.status_code==200,
msg=f'错误原因:期望结果是200,
但实际结果是{response.status_code}'
)
print(response.status_code, response.json())
if __name__ == '__main__':
unittest.main()
- 遇到的问题:
手动添加日志无异常,运行代码报错误码500,服务器响应异常,如下图所示:
【解决办法】
1.进入悟空首页,按F12,手动完成【添加日志】(图略)
2.在网络中找到【addOrUpdate】(即添加日志)接口,查看请求,如下图所示:
3.发现请求是json格式
4.将请求中的【data=】改为【json=】(第20行)
5.再次运行
会发现code码变成0,不再报错
进入悟空首页,查看发现已经成功添加日志
二、删除日志
【成功标志】
运行成功后无报错
【问题描述】
- 错误版删除日志代码如下:
import requests
class TestCase(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
cls.HOST="http://192.168.10.188:8080"
cls.COOKIES = {"Admin-Token":"3cb887575a194a7bb202d4848dd4524c"}
def test_3_shanchurenw(self):
request_url=f'{self.HOST}/OaLog/deleteById'
request_method='POST'
request_body={'logId':'36'}
response=requests.post(request_url,data=request_body,
cookies=self.COOKIES, timeout=3)
print(response.status_code,response.json())
if __name__ == '__main__':
unittest.main()
- 遇到的问题:
手动删除日志无异常,运行代码报错误码500,没有权限,如下图所示:
【解决办法】
1.进入悟空首页,按F12,手动完成【删除日志】(图略)
2.在网络中找到【deleteById】(即删除日志)接口,查看请求,如下图所示:
3.发现请求中【‘logId’:‘88’】,这个88是任务的唯一标志,每个任务都有唯一标志。删除任务报错的原因是,我们从请求中获取的logld:88,是我们已经删除掉的这个任务的唯一标志,每个任务只能删除一次。
4.所以我们只需要把这个数字改为任意一个小于它的数字,再次运行,就可以成功删除,此处将数字改为5:
5.运行结果:
即,logld为5的任务已经被删除成功。
6.不更改logld,再次运行检验
7.运行结果:
会发现再次返回{‘code‘: 500, ‘msg‘: ‘没有权限‘}
这是因为logld为5的任务已经在步骤5中被删除一次,不能删除第二次,任务的logld唯一,每个任务仅能删除一次。