接口自动化框架搭建(三)--通过unittest类实现一个简陋的接口自动化框架

python知识普及

方法在类里开头空4格

属性在方法里开头空4格

下图是一个基本的python类结构

class开头表示类,类名第一个字母要大写

def 后面加空格,表示方法,方法分为私有和公共

1、私有方法:方法前面加2个_表示私有,私有方法只能被类本身调用,不能被其他类调用。__init__()是类的初始化方法,类被调用,该方法就会执行,self表示类的事例,可以把他想象成是Widget类本身的意思,self._size就是WIdget类的_size属性

                       我们看到__init__里面,定义了self._size,前面说私有方法不能被其他类调用,那么就得通过公有方法来调用

2、公有方法:怎么调用和设置私有方法定义的属性,下图get_size方法就是用来返回self._size

                                                                                         resize方法用来设置self._size的值

通过unittest类测试上面类

第一步:导入刚刚的类和unittest类

第二步:定义一个类继承unittest.TestCase类,顾名思义这个TestCase类是测试用例类的意思

setUp和teardown都是TestCase中定义的方法

setUp用来做测试执行前的初始化工作

teardown用来做测试执行后的清理工作

第三步:编写测试方法:testSIze方法:assertEqual(value1,value2)方法用来判断value1和value2是否相等,注意只有方法名前面以test开头才会执行

第四步:加上if __name__ ==  "__main__":unittest.main()     作用:只有当前类本身运行的时候,才会执行这个类的testSize,testResize测试方法,其他类调用不会执行

想象一下,把testSize和testResize改成用requests定义的一个个接口,运行这个类就等于运行很多个接口了

实现一步同时运行2个甚至更多类:当然不可能把所有方法放在一个类下,接着创建一个新的py文件,类名任意改下,其他不变,怎么实现这2个py文件同时运行?

第一步:创建一个文件夹,把上面2个py文件放到文件夹中

第二步:在文件夹同级目录创建一个test_all_case.py文件,通过该文件运行test_case里的文件

第三步:编辑test_all_case.py文件

导入os类,os.listdir(加上test_case的目录路径)会得到test_case文件夹下的所有文件

for case in os.listdir            如果test_case文件夹下有2个文件,case会进行2次循环,第一次得到test_case其中的一个文件名

if case.endwith(".py")         我们为了只是为了执行py结尾文件,做过滤

os.system("python " + case + " 1>>log.txt 2>&1")          os.system方法是系统执行命令,可以尝试用cmd,切换到test_case文件夹  输入python 文件名,就会执行这个py文件,注意python后有空格

                                                   “ 1>>log.txt 2>&1”   把文件执行结果记录到log.txt,注意1前面有个空格,txt后面有个空格

第四步:运行test_all_case.py文件

test_case下面py结尾的文件都会被运行,结果记录在log文件夹下

好了,一个简陋的接口自动化框架搭建完毕

接下来章节是对这个框架的报告优化(生成HTML文件替代log文件)和结构优化



原文地址:https://www.cnblogs.com/heng-xin/p/7928014.html