当前位置: 首页 > news >正文

3.21-1自动化框架

自动化框架

一、介绍框架

1、unittest 框架是python中自带的框架

2、作用:管理和组织测试用例

当我们写的用例越来越多,我们就要考虑用例的编写的规范和组织,以便于后期的维护

3、常见的自动化框架:po框架、pytest 框架、unittest框架(我们讲解)

4、unitest 框架自带标准的库:有如下

a、TestCase类  (测试用例)
b、TestSuite类  (测试套件)
c、TestLoader类   (测试路径)
d、TextTestRunner类  (测试运行)
e、TextTestResult类  (测试结果)
f、TestFixture类   (测试前后准备)
解释下:
TestCase:
一个Testcase的实例就是一个测试用例,测试用例就是一个完整的测试流程,包括初始化setUp、运行run、测试后的还原tearDown
TestSuite:
对一个功能的测试往往需有多个测试用例,可以把多的测试用例集合在一起执行,这就是TestSuite的概念。常用addTest()方法将一个测试用例添加到测试套件中
TextTestRunner:
是用来执行测试用例的,其中的run(test)用来执行TestSuite/TestCase。测试的结果会保存在TextTestResult实例中
TestFixture:
测试准备前要做的工作和测试执行完后要做的工作.包括setUp()和tearDown()。通过覆盖TestCase的setUp和tearDown来实现。
TestLoader:
是用来搜索所有以test开头的测试用例,然后将其加入到testsuite中去执行

5、unittest的框架的结构:

import unittest
class Cms(unittest.TestCase):
    @classmethod
    def setUpClass(cls)->None:
        print("类开始")
    @classmethod
    def tearDownClass(cls)->None:
        print("类结束")
    def setUp(self)->None:
        print("方法开始")
    def tearDown(self)->None:
        print("方法结束")
    def test1(self):
        print("1")
    def test2(self):
        print("2")
    def testa(self):
        print("a")
    def testA(self):
        print("A")
    def dy(self):
        print("独有")
if __name__=='__main__':
    unittest.main()

备注:

1、类的开始,类的结束,方法开始,方法结束都可以不写

2、用例要以test开头,如果没有以test开头就不运行

3、test开头的用例运行顺序:  按ascllma标准:0-9  A-Z  a-z

4、类的开始,类的结束在整个框架中就运行一次

5、方法开始和方法结束,每一条用例都执行

注意点:

1、类的开始,类的结束,方法开始,方法结束都可以不写

2、用例要以test开头,如果没有以test开头就不运行

3、test开头的用例运行顺序:  按ascllma标准:0-9  A-Z  a-z

4、类的开始,类的结束在整个框架中就运行一次

5、方法开始和方法结束,每一条用例都执行

二.unittest 运行部分用例

当运行的是整个框架,我们要运行单个用例:

(1)复制 代码存在的路径 C:\Users\Administrator.USER-20231114RR\PycharmProjects\untitled12\dd\kj1.py

(2)点击编辑路径

图片

(3)再python添加解释器

图片

(4)执行点击右上叫的运行

图片

import  unittest  #导入unittest框架
import time
from bbb.HTMLTestRunnerNew import HTMLTestRunner
class Cms(unittest.TestCase): #创建一个类,继承unittest.TestCase
    @classmethod
    def setUpClass(cls) -> None:
        print("类开始")
    @classmethod
    def tearDownClass(cls) -> None:
        print("类的结束")
    def setUp(self) -> None:
        print("方法开始")
    def tearDown(self) -> None:
        print("方法结束")
    def test1(self):
        print("1")
    def test2(self):
        print("2")
    def testa(self):
        print("a")
    def testA(self):
        print("A")
    def  dy(self):
        print("独有")
if __name__ == '__main__':
    # unittest.main() #执行所有的用例
    # tj=unittest.TestSuite() # 创建一个套件对象
    # tj.addTest(Cms("test2")) #将单个添加用例到集合中,
    # tj.addTests([Cms("test2"),Cms("testA")])#将两个或两个以上添加用例到集合中,
    # unittest.TextTestRunner().run(tj) #通过testrunner运行套件中的用例
    #                 # 运行py文件的相对路径
    # path=r"D:\pycharm\bao2\HTMLTestRunnerNew.py"
    # d=unittest.TestLoader().discover(start_dir=path,pattern="kj*.py")
    # unittest.TextTestRunner().run(d)
    bgpath=r'D:\pycharm\bb\bbb'
    path=r'D:\pycharm\bb\bbb'
    d=unittest.TestLoader().discover(start_dir=path,pattern="aaa*.py")
    new=time.strftime("%y-%m-%d %H-%M-%S")
    file=bgpath+"/"+str(new)+"ui.html"
    f=open(file,"bw")
    r=HTMLTestRunner(
        stream=f,title="ui自动化测试报告",description="用例执行情况",
        tester="dcs")
    r.run(d)

4.运行结果

图片

相关文章:

  • 3.3V升5V2A升压转换,WD1016可兼容SD6271
  • 文件相关函数的总结与记忆
  • 简洁、实用、无插件和更安全为特点的WordPress主题
  • 《南京日报》专题报道 | 耘瞳科技“工业之眼”加码“中国智造”
  • Billu_b0x靶机攻略
  • linux下基本命令和扩展命令(安装和登录命令、文件处理命令、系统管理相关命令、网络操作命令、系统安全相关命令、其他命令)欢迎补充噢
  • 微信小程序检测滚动到某元素位置的计算方法
  • 34、在 deque中使用 [] 操作符和 at() 方法有何区别?
  • 深度强化学习中的深度神经网络优化策略:挑战与解决方案
  • JavaScript |(五)DOM简介 | 尚硅谷JavaScript基础实战
  • 以mysql 为例, 在cmd 命令行连接数据,操作数据库,关闭数据库的详细步骤
  • java string 类型转list实体类且忽略实体类中没有的字段
  • 城市更新浪潮下的破局之道:中建海龙模块化集成建筑技术的新应用
  • 数智读书笔记系列021《大数据医疗》:探索医疗行业的智能变革
  • 接收与发送ipv6数据包
  • 北斗设备启动流程与时长解析
  • W80x使用WM IoT SDK 2.X 开发(二)驱动tft屏幕
  • JavaScript |(六)DOM事件 | 尚硅谷JavaScript基础实战
  • JVM 学习前置知识
  • 2025年渗透测试面试题总结-某四字大厂实习面试复盘 一面 二面 三面(题目+回答)
  • 长三角体育节回归“上海时间”,首次发布赛事旅游推荐线路
  • 政企共同发力:多地密集部署外贸企业抢抓90天政策窗口期
  • 澳大利亚首例“漂绿”诉讼开庭:能源巨头因“碳中和”承诺遭起诉
  • 普京召开俄乌谈判筹备会议,拉夫罗夫、绍伊古等出席
  • 上海首发经济“卷”到会展业,浦东签约三个年度“首展”
  • 6连败后再战萨巴伦卡,郑钦文期待打出更稳定发挥