您的位置:首页 > 编程语言 > Python开发

【python】python的unittest使用

2012-11-17 13:13 459 查看
对于后台测试中的接口测试,因为结果确定,所以实现自动化相对而言比较容易,同时自动化用例方便维护也可以降低回归成本。

python提供了unittest类用来方便的实现case的自动调用,接着昨天的socket例子,实现了一个有3个测试case的用例,代码如下:

import socket
import sys
import time
import unittest

class testClient(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def testInputInt(self):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('127.0.0.1', 62001))
sock.send('1')
strBuf = sock.recv(1024)
strReturn = strBuf.split(':')[1]
try:
intReturn = int(strReturn)
except:
pass
self.assertEqual(intReturn, 2)
sock.close()
def testTimeout(self):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('127.0.0.1', 62001))
time.sleep(6)
try:
sock.send('1')
strBuf = sock.recv(1024)
self.assertEqual(0, 1)
except:
pass
sock.close()
def testInputString(self):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('127.0.0.1', 62001))
sock.send('abcd')
strBuf = sock.recv(1024)
strReturn = strBuf.split(':')[1]
self.assertEqual(strReturn, 'abcd')
sock.close()

if __name__ == "__main__":
unittest.main()


跑完之后结果如下:

...

----------------------------------------------------------------------

Ran 3 tests in 6.003s

OK

3个点表示是3个成功的case,失败的话会打E,然后打印出失败的信息。当然,也可以自己加一些log打印。

实现的基本过程是这样的:

1.自定义一个类继承unittest;

2.定义setUp和tearDown方法,分别用来执行调度用例前和调度用例后需要执行的操作;

3.所有的用例需要用test来开头;

4.通过执行unittest.main()来调度所有case。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: