自动化测试 (自动化测试培训)

本文目录导航:

自动化测试-unittest框架,理论和实操双管齐下

1、什么是Unittest框架?

自动化测试 (自动化测试培训)

python自带一种单元测试框架

2、为什么使用UnitTest框架?

>批量执行用例

>提供丰富的断言知识

>可以生成报告

3、核心要素:

1). TestCase(测试用例)

2). TestSuite(测试套件)

3). TestRunner(测试执行,执行TestUite测试套件的)

4). TestLoader(批量执行测试用例-搜索指定文件夹内指定字母开头的模块) 【推荐】

5). Fixture(固定装置(两个固定的函数,一个初始化时使用,一个结束时使用))

接下来会展开 核心要素来认识unittest框架:

首先介绍下unittest的用例规则:

1、测试文件必须导包:import unittest

2、测试类必须继承

3、测试方法必须以 test_开头

一、TestCase(测试用例)

1、是一个代码文件,在代码文件中来书写真正的用例代码 (里面的print均是模拟测试用例)

说明:def 定义的test_ 是测试用例,只有执行 if __name__ == ___mian___ 的时候会执行测试用例,其他普通函数则不执行,通过 self 来调用执行。

二、TestSuite(测试套件)和TestRunner(测试执行)

1、TestSuite(测试套件):用来组装,打包 ,管理多个TestCase(测试用例)文件的

2、TestRunner(测试执行):用来执行 TestSuite(测试套件的)

代码:首先要准备多个测试用例的文件才可以实现TestSuite和TestRunner,以下代码是已经准备了unittest_Demo2和unittest_Demo1两个测试用例文件

三、TestLoader(测试加载)

说明:

2. 搜索指定目录文件下指定字母开头的模块文件下test开始的方法,并将这些方法添加到测试套件中,最后返回测试套件

3. 与Testsuite功能一样,对他功能的补充,用来组装测试用例

一般测试用例是写在Case这个文件夹里面,当测试用例超多的时候就可以考虑 TestLoader

四、Fixture(测试夹具)

是一种代码结构,在某些特定情况下,会自动执行。

4.1 方法级别

在每个测试方法(用例代码)执行前后都会自动调用的结构

def setUp(),每个测试方法执行之前都会执行 (初始化)

def tearDown(),每个测试方法执行之后都会执行 (释放)

特性:几个测试函数,执行几次。每个测试函数执行之前都会执行 setUp,执行之后都会执行tearDwon

4.2 类级别

在每个测试类中所有方法执行前后 都会自动调用的结构(在整个类中 执行之前执行之后各一次)

def setUpClass() ,类中所有方法之前

def tearDownClass(),类中所有方法之后

特性:测试类运行之前运行一次setUpClass ,类运行之后运行一次tearDownClass

注意:类方法必须使用 @classmethod修饰

案列模板:结合了类级别和方法级别实现的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GBxQV2uP-10)(C:/Users//AppData/Roaming/Typora/typora-user-images/)]

五、断言

1、什么是断言:

让程序代替人工自动的判断预期结果和实际结果是否相符

断言的结果:

1)、True,用例通过

2)、False,代码抛出异常,用例不通过

3)、在unittest中使用断言,需要通过 self.断言方法

2、为什么要断言:

自动化脚本执行时都是无人值守,需要通过断言来判断自动化脚本的执行是否通过

注:自动化脚本不写断言,相当于没有执行测试一个效果。

3、常用的断言:

对于一些未完成的或者不满足测试条件的测试函数和测试类, 不想执行,可以使用跳过

结果

七、数据驱动(unittest ddt)

ddt:data-driver tests

数据驱动:是以数据来驱动整个测试用例的执行, 也就是测试数据决定测试结果

数据驱动解决的问题是:

1)、代码和数据分离,避免代码冗余

2)、不写重复的代码逻辑;

在python解释器中需要安装 ddt 这个包才能用:

要检查是否安装上,在cmd当中 输入 pip list命名,有ddt说明安装成功

语法:

1、使用数据驱动,要在class前加上修饰器 @ddt

说明:方法里面使用 print ,为了方便,模拟测试用例,主要是为了学习数据驱动,实际中方法里面写的是测试用例的代码

1)、结合 selenium 使用 ddt

self:相当于java中的this,当前对象的引用,定义了driver这个变量。

2、在实际中不可能是单一参数进行传参,将会使用多个参数进行传参:

但是以上步骤都是数据在代码当中的,假如要测试n个手机号这样的数据,全部写在 @data 装饰器里面就很麻烦,这就引出了数据驱动里面的代码和数据的分离。

3、将数据放入一个文本文件中,从文件读取数据, 如JSON、 excel、 xml、 txt等格式文件 ,这里演示的是json文件类型.

json文件处理, 这个链接介绍了json文件和Python文件基本操作

(1)、在json文件驱动

(2)、在测试代码中读取json文件

执行结果:

一行表示一组:

写法一:

写法二:推荐

对应的json文件

写法:

注意:file_date 装饰器,可以直接读取yaml和json文件

建立excel表的时候需要退出pychram在根目录下创建excel表保存,否则会报错

用excel登录csdn操作

用例不可能每一次运行都成功,肯定运行时候有不成功的时候。如果可以捕捉到错误,并且把错误截图保存,这将是一个非常棒的功能,也会给我们错误定位带来方便

截图方法: _screenshot_as_file

有两种测试报告:

只有单独运行 TestCase 的代码,才会生成测试报告

这里需要第三方的测试运行类模块,然后放在代码的目录中

就像这两个模块一样放进代码目录中

写法一:

写法二:

这里面的当前路径也可以用./ 来表示!!!

注意:

实例化 第三方的运行对象,HTMLTestRunner()的初始化有多种可以自定义设置

最后生成结果

unittest框架就本上就是这些知识了,里面记得东西很多,多敲代码,形成记忆...

c语言用函数编程实现计算字符串中子串出现的次数。为什么子串是一位数或者出现1的时候输出不正确,求修改

if(str[i+j]==sub[j]) 当i+j>=m的时候指针溢出了。修改函数如下:int FindString(char *str,char *sub){int m,n,i,j,count=0,wow=0;m=strlen(str);n=strlen(sub);/*加上长度检查*/if(m<n) return 0;/*for(i=0;i<m;i++)*//*改为以下语句*/for(i=0;i<m-n+1;i++){for(j=0;j<n;j++){if(str[i+j]==sub[j])wow++;}if(wow==n)count++;wow=0;}return count;}

VS2013的创建单元测试的功能怎么找出来

本文是官方文档的学习笔记,官方文档在这里。

1、打开VS3013,随便建一个解决方案,比如叫:UnitTest,建一个类库项目UnitTest_Bank,该项目中添加一个BankAccount类,这个类及类中的方法就是我们要测试的对象。

2、给UnitTest添加一个测试项目:在解决方案名称上右键=》添加=》新建项目=》VisualC#=》测试=》单元测试项目,项目名称叫UnitTest_BankTest,将UnitTest_Bank添加为UnitTest_BankTest的引用项目,将测试项目UnitTest_BankTest里默认生成的类重命名为BankAccountTest。

对于BankAccountTest类,类上有注解TestClass,方法上有注解TestMethod。

可以在这类文件里添加其他类和方法,供测试方法使用。

首个测试:3、现在我们测试BankAccount类的Debit方法,我们预先确定此次测试要检查如下方面:a、如果信用余额(credit amount)比账户余额大,该方法就抛异常ArgumentOutOfRangeExceptionb、如果信用余额小于0也抛异常c、如果a和b都满足,该方法会从账户余额里减去amount(函数参数)注意:由a、b、c可以看邮BankAccount类中的Debit方法最后一行应该是-=,而不是+=——当然了,这个是故意留下的bug,而不是微软的失误,就等着在这次测试中把它测出来,然后修正掉。

你可能想看:
« 上一篇
下一篇 »

相关推荐

FreeBasic:强大免费开源的64位basic编译器及应用优势

2025年05月10日

82阅读

脊柱侧弯矫正方法大盘点:运动康复、支具矫正等多种方式

2025年05月09日

85阅读

如何在winForm标题栏去掉标题文字且任务栏图标正常显示

2025年05月09日

85阅读

十一黄金周促销广告词大全,国庆购物狂欢等你来

2025年05月09日

77阅读

关闭快速编辑模式及插入模式,设置控制台指定文字颜色举例

2025年05月09日

63阅读

黄金搭档低糖高钙饮品包装及成分功效全解析,适合人群要知晓

2025年05月09日

91阅读