1、首先,我们先熟悉下python 中常用的库requests的基本用法
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
# Filename: api_test_01.py
# __Author__: zhaoyunhe
# data: 2018/5/15
importrequests
importjson
# 接口的url
url ="http://fanyi.baidu.com/basetrans"
# 接口的参数
params = {
"from":"en",
"to":"zh",
"query":"test"
}
params1 = {
"from":"en",
"to":"zh",
"query":"study"
}
headers = {
"User-Agent":"Mozilla/5.0 (iPhone; "
"CPU iPhone OS 8_0 like Mac OS X) "
"AppleWebKit/600.1.4 "
"(KHTML, like Gecko) "
"Mobile/12A365 MicroMessenger/5.4.1 "
"NetType/WIFI"
}
r = requests.request("post",url,
params=params,
headers=headers)
r1 = requests.post(url,
data=params,
headers=headers)
r2 = requests.post(url,
data=params1,
headers=headers)
# 打印返回结果
# print(r.text)
# print(r1.text)
# 为了让结果看的更加清楚一点,我取来翻译的字段
d = json.loads(r.text)
d1 = json.loads(r2.text)
print(d['dict']['symbols'][]['parts'][]['means'])
print(d1['trans'][]['dst'])
执行如上代码会得到如下结果:(其中用了字典切片和json.loads)
/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /Users/beiquan/PycharmProjects/old/urllib_api/api_test_01.py
['试验', '测验', '考验', '化验']
学习
Process finished with exit code 0
2、下面我们引入unittest库来实现简单的单元测试
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
# Filename: api_test_02_unittest.py
# __Author__: zhaoyunhe
# data: 2018/5/15
# 接下来我们来引入unittest库优化代码:
importrequests,unittest,json
classTestbaiduapi(unittest.TestCase):
defsetUp(self):
url="http://fanyi.baidu.com/basetrans"
deftestzhen(self):
params = {
"from":"en",
"to":"zh",
"query":"test"
}
headers = {
"User-Agent":"Mozilla/5.0 (iPhone; "
"CPU iPhone OS 8_0 "
"like Mac OS X) "
"AppleWebKit/600.1.4 "
"(KHTML, like Gecko) "
"Mobile/12A365 "
"MicroMessenger/5.4.1 "
"NetType/WIFI"
}
url ="http://fanyi.baidu.com/basetrans"
r = requests.post(url,
data=params,
headers=headers)
d = json.loads(r.text)
assert\
u'试验'\
in\
d['dict']['symbols'][]['parts'][]['means']
deftestzhen1(self):
params = {
"from":"en",
"to":"zh",
"query":"study"
}
headers = {
"User-Agent":"Mozilla/5.0 "
"(iPhone; CPU "
"iPhone OS 8_0 "
"like Mac OS X) "
"AppleWebKit/600.1.4 "
"(KHTML, like Gecko) "
"Mobile/12A365 "
"MicroMessenger/5.4.1 "
"NetType/WIFI"
}
url ="http://fanyi.baidu.com/basetrans"
r = requests.post(url,
data=params,
headers=headers)
d = json.loads(r.text)
assertu'学习'ind['trans'][]['dst']
deftearDown(self):
pass
if__name__ =='__main__':
unittest.main(verbosity=2)
执行如上代码会得到如下结果:
/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /Applications/PyCharm.app/Contents/helpers/pycharm/utrunner.py /Users/beiquan/PycharmProjects/old/urllib_api/api_test_02_unittest.py::Testbaiduapi::testzhen1 true
Testing started at 下午4:24 ...
Process finished with exit code 0
截图如下:
3、每一个unittest都会有一个setUp和tearDown,即前置条件和后置处理
deftearDown(self):
pass
if__name__ =='__main__':
unittest.main(verbosity=2)
4、注意:
assertu'学习'ind['trans'][]['dst']
则为这一条单元测试的断言
5、而这其中的定义的
deftestzhen1(self):
及其下面的内容则为一条单元测试的用例
这样一条简单的单元测试即完成,当然这是极其简单的,没有任何条件也没加任何的测试固件,后面的文章我会继续讲解,不熟悉的请先了解下python的基础知识,欢迎关注赵小睡,我会一直努力和大家一起加油的
领取专属 10元无门槛券
私享最新 技术干货