我们在使用Python的unittest做自动化或者单元测试时,有时需要一个测试用例根据不同的输入.输出组合而执行多次,但是,unittest中一个用例只能有一组参数组合执行,如果采用循环的方式,在生成的测试报告中也只会有一个测试用例的统计,单实际上我们需要一组参数就统计为一个测试用例,又或者将用例复制N份(这种方式谁然可以满足需求,单实际上维护太麻烦,如果有一个改动,需要复制N份),那么我们应该采用什么样的办法来实现我们的需求呢?经过查找资料和百度,我们可以采用Python的setattr函数…
现在正在使用 unittest 框架,我们来记录下这个框架的知识点: unittest 框架:我们在写接口用例的时候,会继承 unittest 当中的 TestCase 的类和方法,私有方法除外,来识别以 test_ 开头的测试用例,unittest 相当于是一个包,我们来使用包里面的工具: 1. 单元测试的概念 测试不是来测试Java写的模块.函数.类 而是测试代码输入和输出,比对是否正确 往往单元测试, 是有开发来写, 用于测试自己写的模块.函数.类是否正确 有的一些单元测试任务, 是由测试…
最近在写代码时发现一个有趣的地方,当python中的函数使用list作为默认参数且调用时不给其赋值时,无法通过在函数中将其赋值为[]来达到清空此默认参数的目的.按照道理来说,函数f1中的list为局部变量,在下次进入时,其应保持默认值才对.而且list具有可变性,在原内存地址中修改其内容. 具体代码如下: def f1(a=[2]): a.append(100) print a a=[] #del a[:] print a def f2(a=[2]): a.append(100) print a…
函数重载主要是为了解决两个问题. (1)可变参数类型. (2) 可变参数个数. 另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两个函数的功能其实不同,那么不应当使用重载,而应当使用一个名字不同的函数. 好吧,那么对于情况 (1),函数功能相同,但是参数类型不同,python 如何处理?答案是根本不需要处理,因为 python 可以接受任何类型的参数,如果函数的功能相同,那么不同的参数类型在 python 中很可能是相同的代码…
引言: 在Python中可以缺省给方法制定缺省值,但是这个缺省值在某些情况下确是和我们预期不太一致的-... 这个诡异的问题,曾经困然了我几天时间,才最终定位出来-.. 测试代码 from datetime import datetime import time def test(curdate=datetime.now()): print("The current Time:%s" % curdate.strftime("%Y-%m-%d %H:%M:%S"))…
在使用selenium2 Python做自动化测试的时候遇到个问题,写一个testcase 生成报告后,会有一个case的执行状态记录.这样我们写一个登录功能的自动化用例,只写一个case显然是不行的,测试用例要满足他的覆盖度,所以我们需要写多个用例.但是对于同样的功能,我们用例脚本体现出来的只有输入的参数值不一样,其它操作都是一样的. 这时候一个用例写一个test_case_login()的脚本,但是我们又想在报告中单独记录每一个case的执行状态,不得写多个重复的方法. 如: test_ca…
<python基础编程>里有讲到一段高级排序: “如果希望元素能按照特定的方式进行排序(而不是sort函数默认的方式,即根据python的默认排序规则按升序排列元素,第5章内对此进行讲解),那么可以通过compare(x,y)的形式自定义比较函数.compare(x,y)函数会在x<y时返回负数,在x>y时返回正数,如果x=y则返回0(根据你的定义).定义好该函数之后,就可以提供给sort方法作为参数了.内建函数cmp提供了比较函数的默认实现方式: >>>cmp(…
函数:一个工具,随调随用 降级代码冗余 增加代码的复用性,提高开发效率,为了不成为cv战士 提高程序扩展性 函数有两个阶段:定义阶段,调用阶段. 定义时:只检查函数体内代码语法,不执行函数体内代码. 函数参数: 参数分形参.实参 形参:函数定义时括号内的参数 实参:函数调用时括号内的参数 形参相当于变量,实参相当于变量的值. 定义时: def func(a, b, c): pass a, b, c为形参 调用时: func(1, 2, 3) 1, 2, 3 为实参 形参: 只在被调用时,才分配内…
unittest 当中为我们提供了许多加载用例的方法,这里说下常用的两种方法...推荐使用第二种 第一种加载测试用例的方法:使用加载器加载两个模块 需要把所有的模块加载到套件中 那么就可以自动的运行所有的模块 执行顺序是按照导入测试用例的先后来执行的,先执行 num_multi,在执行 num_add import unittest # 导入写好的测试用例,可以使用 as 重新命名更加简短方便 from Python_0715_unittest import lemon_06_unittest_…
glob模块中有一个叫glob的方法可以获取某个目录下的文件. import glob temp=glob.glob("E:\\Temp\\*.txt") print(temp) 则返回E盘下Temp文件夹下的所有txt文件的路径. 注意返回的是一个列表. 另外参数可以为一个相对路径,则以当前工作目录为准.…