| 
 | 
    
 
介绍 
 
上一篇文章主要介绍了模块的相关知识,接下来我们来看看单元测试框架。熟悉或了解java的小伙伴应该都知道常见的单元测试框架Junit,本次招聘的需求也是经常看到的。还有单位 
 
测试框架——相当于一个版本的junit。除了里面的单元测试框架外,还有一个框架,其实用的比较少,以后有时间会继续介绍和分享。单元测试框架不仅可以应用于单元测试,还可以应用于WEB自动化测试。 
 
对于测试用例的开发和执行,测试框架可以组织和执行测试用例,并提供丰富的断言方法来判断测试用例是否通过,最终生成测试结果。 
 
学习和理解 
 
1、查看中文官网:英文官网:/3//.html 
 
2、首先导入并使用帮助功能查看源码分析查看说明: 
 
unit ,基于 Erich Gamma 的 JUnit 和 Kent Beck 的 . 
 
翻译:单元测试框架是一个基于java的junit测试框架 
 
简单用法 
 
1、从官网源码中查找用法或打印帮助 
 
 
 
2、我们将上面的代码复制下来,单独运行,看看测试和运行结果,抱着怀疑的态度体验一下,因为不可能每个人都没有错误,官网和源码也不例外。 
 
 
 
代码分析及解释: 
 
1、第一行是导入这个模块 
 
2、class 这一行定义了一个测试类并继承。这个班 
 
定义测试类,父类是.. #方法,比如setUp和,但是这个方法可以在子类中重写来重写父类方法。#可继承。各种断言方法。 
 
3、接下来要定义两个测试用例名称:而且,注释中有一句很重要的一句话:## test names begin 'test*'--翻译:测试用例的名称应该以'test*'开头测试 
 
4、然后是断言,这里的断言方法是——判断两个是否相等,这个断言可以是一个或多个 
 
5、如果下面的.main()是运行main函数,运行后会看到测试结果(运行两个用例耗时0.000秒,两个用例都通过了) 
 
模仿与实践 
 
1、既然你几乎什么都知道天外神坛,还等什么,开始模仿和敲门吧。 
 
2、以上两种情况是加法和乘法,我们可以写一个case来试试减法和除法。 
 
3、有很多朋友不知道怎么写断言。断言实际上是将实际结果与预期结果进行比较。比较的方法有很多,但这里只是判断是否相等的最简单的方法。 
 
参考代码 
 
1 # =utf-8 2 #1.先设置编码,utf-8可以支持中英文,如上,一般放在第一行 3 4 #2.注:包括记录创建时间,创建者,项目名称。5''' 6 on 2019-4-23 7@:北京-洪哥8:学习和使用框架编写测试用例思路 9''' 10 #3.导入模块 11 12 13 #4.@ > 复制并运行测试 14 类 tCase(.): 15def (self): # 测试名称以 'test' 开头 = 6-5 # 实际结果 = 1 # 预期结果 .(, hope) 19 20def (self): = 7 / 2 # 实际结果 = 3.5 # 预期结果.(, hope) 24 25 if == '': .main() 
 
前置条件和后置条件 
 
1、setUp:写测试用例的时候,每一个操作其实都是基于打开浏览器,输入对应的URL。这是执行用例的前提。 
 
2、:用例执行后,为了不影响下一个用例的执行,一般会有一个数据恢复过程,这是执行用例的后置条件。 
 
3、很多小伙伴执行完用例后不进行数据恢复,导致下一个用例执行失败。这就是典型的挖坑埋自己、坑自己、坏习惯的例子。 
 
4、pre和post都是非必要条件,如果不是也可以写pass 
 
 
 
参考代码 
 
1 # =utf-8 2 #1.先设置编码,utf-8可以支持中英文,如上,一般放在第一行 3 4 #2.注:包括记录创建时间,创建者,项目名称。5''' 6 on 2019-4-23 7@:北京-洪哥8:学习和使用框架编写测试用例思路 9''' 10 #3.导入模块 11 12 13 #4.@ > Pre-, post- and  tests 14 class Test(.): 15 16def setUp(self): #如果没有,你可以不写或通过而不是 18 19def (self): 21 22def (self): # test名称以 'test' 开头 = 6-5 # 实际结果 = 1 # 预期结果.(, hope) 26 27def (self): = 7 / 2 # 实际结果 = 3.5 # 预期结果.(, hope ) 31 32 如果 = = '': .main() 
 
概括 
 
一、模块各个属性的描述 
 
先说一下模块的各种属性。所谓知己知彼,方能百战百胜,了解各种属性对后续用例的编写会有很大帮助。 
 
1. 的属性如下: 
 
['','','','','','','','','','','','','','','','',' ', '', '', 'case', '', '', '', '', '', '', 'main', '', '', '', '', '', ' ', '', 'skip', '', '', 'suite', 'util'] 
 
操作说明: 
 
.: class,所有测试用例类继承的基类。 
 
班级(。): 
 
.main():可以很方便的把一个单元测试模块变成可以直接运行的测试脚本。main() 方法使用该类搜索模块中包含的所有以“test”名称开头的测试方法,并自动执行它们。执行方式的默认顺序是:按照ASCII码的顺序加载测试用例,数字和字母的顺序是:0-9、AZ、az。因此,以 A 开头的测试用例方法将首先执行,以 a 开头的测试用例方法将在后面执行。 
 
.():框架的 () 类用于创建测试套件。 
 
.():框架的()类,通过该类下的run()方法运行套件组装的测试用例,入参为套件测试套件。 
 
.():()类,该类下面的()方法可以自动匹配测试目录找到测试用例文件(test*.py),并将找到的测试用例组装到测试套件中,所以可以直接通过 run() 方法被执行。用法如下: 
 
=..(, ='test_*.py') 
 
.skip():装饰器,在运行一个用例时,有些用例可能不想被执行等等。装饰器可以用来暂时屏蔽测试用例。一个常见的用法是,例如,如果你想调试某个测试用例,如果你想先阻塞其他用例,你可以使用装饰器来阻塞它。 
 
@.skip(): skip() 装饰器:无条件跳过被装饰的测试,并说明跳过测试的原因。 
 
@.(): (,) 装饰器:当条件为真时跳过装饰测试,并解释为什么跳过测试。 
 
@.(): (,) 装饰器:当条件为假时,跳过被装饰的测试并说明跳过测试的原因。 
 
@.():() 测试被标记为失败。 
 
2. 类的属性如下: 
 
['','','','','','','','','','','','','','','','',' ', '', '', '', '', '', '', '', '', '', '', 'nc', '', '', '', '', '' , 'bset', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 's', '', '', '', '', 'es', '', '', '', '', '', '', '', '', '', '调试', '', '','失败','','','','','l','','','','id','','','运行','setUp','', '', '', '', ''] 
 
操作说明: 
 
setUp():setUp()方法用于在执行前初始化测试用例。如果需要在测试用例中访问数据库,可以建立数据库连接并在setUp中进行初始化。如果测试用例需要登录网页,可以先实例化浏览器。 
 
():() 方法用于测试用例执行后的后果。比如关闭数据库连接。关闭浏览器。 
 
*():一些断言方法:在执行测试用例的过程中,通过判断测试得到的实际结果与预期结果是否相等来确定最终的测试用例是否被执行。 
 
(a,b, [msg='测试失败时打印的信息']):断言a和b是否相等,如果相等,则测试用例通过。 
 
(a,b, [msg='测试失败时打印的信息']):断言a和b是否相等,如果不相等,则测试用例通过。 
 
(x, [msg='测试失败时打印的信息']):断言x是否为True,如果为True,则测试用例通过。 
 
(x, [msg='测试失败时打印的信息']):断言x是否为False,如果为False,则测试用例通过。 
 
(a,b, [msg='测试失败时打印的信息']):断言a是否为b,测试用例通过。 
 
(a,b, [msg='测试失败时打印的信息']):断言a是否为b,如果不是,则测试用例通过。 
 
(x, [msg='测试失败时打印的信息']):断言x是否为None,如果为None,则测试用例通过。 
 
(x, [msg='测试失败时打印的信息']):断言x是否为None,否则测试用例通过。 
 
(a,b, [msg='测试失败时打印的信息']):断言a是否在b中python接口自动化框架,测试用例在b中通过。 
 
(a,b, [msg='测试失败时打印的信息']):断言a是否在b中,如果不在b中,则测试用例通过。 
 
(a,b, [msg='测试失败时打印的信息']):断言a是b的实例,测试用例通过。 
 
(a,b, [msg='测试失败时打印的信息']):断言a是b的实例,否则测试用例通过。 
 
3. 类的属性如下:(需要整理用例) 
 
['','','','','','','','','','','','','','','','',' ','','','','','','','','','','n','ss','',''python接口自动化框架,'','','调试','运行'] 
 
操作说明: 
 
():()方法是将测试用例添加到测试套件中,如下图,就是将模块下的类下的测试用例添加到测试套件中。 
 
套件 = .() 套件。(.('')) 
 
4.@>的属性如下:(需要整理用例) 
 
['','','','','','','','','','','','','','','','',' ', '', '', '', '', '', '', '跑', '', ''] 
 
操作说明: 
 
run():run()方法是运行测试套件的测试用例,输入参数是套件测试套件。 
 
= .() .run(套件) |   
 
    
    
        
            【天外神坛】免责声明及帮助 
        
        
1.重要:如果遇到隐藏内容回复后显示为代码状态,直接刷新一下页面即可解决此问题。 
2.本文部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。 
3.若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。 
4.如果本站有侵犯、不妥之处的资源,请在网站右边客服联系我们。将会第一时间解决! 
5.本站所有内容均由互联网收集整理、网友上传,仅供大家参考、学习,不存在任何商业目的与商业用途。 
6.本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除! 
 
     
 
 
 |