1.目录结构
1.test.py 运行主文件
2.req.py 调用requests方法
3.HTMLTestRunner.py这个文件是生成报告的文件,从官网下载,我这里是现成,可能里面需要导入一些库,在python里面下载最新的库就可以了。
2.代码分析 test.py文件
import unittest
from req import Runmain #引入模块
from mock import mock
import HTMLTestRunner
from moke_demo import mock_test
class TestMethod(unittest.TestCase):
def test_01(self):
url='https://lbcwx.lingxiu.top/api/shoppingcart/fittingToGoBuy'
data={
'model_ids': 64,
'account_body_id': 1011,
'embroidery_id': 0,
'item_id': 2,
'token': '4b0ea17148bbbaa93a90e970f8db0981'
}
run=Runmain(url,'POST',data) #Runmain是res模块class定义类的一个方法
res=run.test_main(url,'POST',data) #把方法赋值给一个变量
ree=eval(res) #取出来的是一个str类型,需要转换为字典类型,如果不清楚,可以打印类型分析
print(ree)
if ree["code"]==1: #这里的code是接口返回的参数为字典类型,res变量可以打印出来查看,对code进行判断
print("测试通过")
else:
print("测试失败")
# self.assertEqual(ree["code"],2,"测试失败")
def test_02(self):
print('第二个')
filepath="…/report/htmlreport.html" #把生成报告文件存放到你python路径下面,文件名自己定义
fp=open(filepath,‘wb’)
runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title=‘this is first report’) #调用HTMLTestRunner这个方法,后面的参数只是展示的格式
runner.run(TestMethod(‘test_01’))
3.req.py文件
import requests
import json
class Runmain():
def init(self,url,indent,data):
self.res=self.test_main(url,indent,data)
def test_post(self,url,data):
res=requests.post(url=url,data=data).json()
return json.dumps(res,indent=2,sort_keys=True)
def test_get(self,url,data):
res=requests.get(url=url,data=data).json()
return json.dumps(res,indent=2,sort_keys=True)
def test_main(self,url,indent,data):
if indent == 'POST':
return self.test_post(url,data)
else:
return self.test_get(url,data)
HTMLTestRunner.py文件内容
```python
http://tungwaiyip.info/software/HTMLTestRunner.html (去这里下载就好)
最后会在../report/htmlreport.html目录下面生成这样一个文件,然后用浏览器打开
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200511104155876.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lhbmd4aW5nemhpMTIz,size_16,color_FFFFFF,t_70)
1.如果有报错,肯定是要下载最新的包的。
2.HTML只是个报告的模板,这里面部分的代码需要调试,注意有个print<<部分大概在400行左右是这样写的会导致报错,改成print()加个括号就好了