• 接口自动化框架搭建(三)--通过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文件)和结构优化

    
    
    
  • 相关阅读:
    使用apt-mirror建立本地debian仓库源
    在MacOS上利用docker构建buildroot
    mac开发错误:errSecInternalComponent
    NFS作为根文件系统,挂载超时
    关于物体 '固有类别' 与 '实际使用类别' 分离的情况,结构体定义方法
    Crontab could not create directory .ssh
    mac bash_profile
    Mac bash rc
    watchtower无法自动更新镜像的解决方法
    spring security oAuth2.0 数据库说明
  • 原文地址:https://www.cnblogs.com/heng-xin/p/7928014.html
Copyright © 2020-2023  润新知