最近用unittest做了一些接口自动化测试和UI自动化测试,但对unittest还只是一知半解,忙里偷闲对它做一个总结并记录下来,帮助自己和其它初学者解惑
1、unittest是python中的一个单元测试框架,类似于Junit(Junit是java中的单元测试框架)
2、unittest在实际测试中能怎么运用?它可以做哪些测试
(1)单元测试:unittest
(2)HTTP接口自动化测试:unittest + Requests
(3)Web UI 自动化测试:unittest + Selenium
(4)移动自动化测试:unittest + Appium
多学一点:
1、Requests是python中用于实现http接口调用的库。
2、Selenium用于实现Web页面的各种操作,支持多种编程语言,其中包括python语言。
3、Appium是一款当前非常流行的移动端测试工具,同样支持python语言。
3、unittest提供了哪些功能?
(1)提供用例编写规范与执行
(2)提供专业的比较方法
例如:断言相等/不相等、包含/不包含、True/False等
(3)提供丰富的测试日志
当测试用例执行失败时抛出明确的失败信息,当测试用例执行完成后提供执行结果信息。例如,统计失败用例数、成功用例数和执行时间等。
4、unittest的4个核心概念
(1)Test Case——测试用例
一个TestCase的实例就是一个测试用例,是一个完整的测试流程,包括测试前环境的大件setUp,以及测试后环境的还原tearDown。测试用例是一个完整的测试单元,可以对某一问题进行验证。
比如一个名称为LoginTest的class继承unittest.TestCase,是一个登录测试的测试用例,其中有多个以test_开头的方法,一个这种方法就是登录这个测试点的一种情况,在load的时候会生成一个TestCase实例,例如test_loginName_error()
(2)TestSuite——测试套件
TestSuit用来组装单个测试用例TestCase,可以通过addTest加载到TestCase到TestSuit中,从而返回一个TestSuit实例;而且TestSuite也可以嵌套TestSuite
(3)TestRunner——测试的执行
TestRunner是来执行测试用例的,其中的run(test)会执行TestSuite/TestCase中的run(result)方法
(4)Test Fixture——搭建和销毁测试用例环境
通过setUp()和tearDown()方法来实现。可以在setUp()中建立数据库连接以及进行一些初始化,在tearDown() 中清除在数据库中产生的数据,然后关闭连接。
注意tearDown的过程很重要,要为以后的TestCase留下一个干净的环境,且这两个方法在每个测试方法执行前以及执行后执行一次, 如果想要在所有case执行之前准备一次环境,并在所有case执行结束后再清理环境,我们可以用setUpClass()与tearDownClass(),注意:方法上必须加@classmethod,否则报错
多学一点:
1、TextTextRunner的verbosity参数可以控制执行结果的输出,0 是简单报告、1 是一般报告、2 是详细报告
2、我们可以通过skip,skipIf,skipUnless装饰器跳过某个case,或者用TestCase.skipTest方法
以上参考:虫师《Web接口开发与自动化测试》
https://blog.csdn.net/huilan_same/article/details/52944782
每天多学一点点~~