首页
学习
活动
专区
工具
TVP
发布

python如何利用unittest库和json库进行简单的单元测试

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的基础知识,欢迎关注赵小睡,我会一直努力和大家一起加油的

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180605G17VHY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券