• 测开面试 | 自动化测试之框架篇


    一、unittest 原理(https://docs.python.org/3/library/unittest.html)
    1、unittest 框架包含哪些内容?
    TestFixture:

    • SetUp
    • TestCase
    • TearDown

    TestCase
    TestSuite
    TestRunner

    import unittest
    
    class WidgetTestCase(unittest.TestCase):
        def setUp(self):
            self.widget = Widget('The widget')
    
        def test_default_widget_size(self):
          self.assertEqual(self.widget.size(), (50,50),
                           'incorrect default size')
    
        def test_widget_resize(self):
            self.widget.resize(100,150)
            self.assertEqual(self.widget.size(), (100,150),
                             'wrong size after resize')    
    
        def tearDown(self):
            self.widget.dispose()
    
    def suite():
        suite = unittest.TestSuite()
        suite.addTest(WidgetTestCase('test_default_widget_size'))
        suite.addTest(WidgetTestCase('test_widget_resize'))
        return su
    
    if __name__ == '__main__':
        runner = unittest.TextTestRunner()
        runner.run(suite())
    

    二、DDT-数据驱动(https://ddt.readthedocs.io/en/latest/example.html)
    1、什么是数据驱动?

    • 数据驱动测试,即黑盒测试,又称为功能测试
    • 数据驱动单元测试,为数据源中的每行,重复进行一种单元测试
    • 数据驱动单元测试,常用情况是使用多个输入值测试 API
    • “测试数据”与“执行代码”分离

    2、DDT 的原理?

    • Python 下的数据驱动框架名称也叫 DDT(Data-Driven Tests)
    • 效果:使用多个数据运行一条用例,使其表现为多条用例
    • 原理:通过 Python 的装饰器,装饰每条用例

    3、数据驱动测试的意义?

    • 1.代码复用率高,一次编写多条数据复用逻辑
    • 2.异常排查效率高,测试执行隔离,数据间无影响
    • 3.代码可维护性高,提高代码的易读性

    三、Lettuce-行为驱动
    1、什么是行为驱动?

    • 行为驱动开发,Behavior-Driven Development,简写 BDD
    • 在软件工程中,BDD 是一种敏捷软件开发的技术
    • 用自然语言书写非程序员可读的测试用例

    2、Lettuce 的原理?

    • Lettuce 是基于 Python 语言的行为驱动测试框架
    • Lettuce 将测试用例和自动化测试代码分离
    • Lettuce 写测试用例就像写文本一样清晰

    四、KDT-关键字驱动
    1、什么是关键字驱动?(https://zh.wikipedia.org/wiki/關鍵字驅動測試)

    • 关键字驱动测试(keyword-driven testing)也称为表格驱动测试或行动字驱动测试
    • 它将创建测试程序的步骤分为规划和实现两个阶段
    • 关键字驱动使不懂代码的人可以完成自动化过程

    2、Robot Framework 的原理?

    • 基于 RIDE 可视化工具,导入类库(例如:AppiumLibrary)
    • 使用 AppiumLibrary 中提供的关键字,实现用例过程
    • 使用 RIDE 完成用例的执行和结果的管理

    五、生成测试报告
    1、如何收集测试结果?(http://tungwaiyip.info/software/HTMLTestRunner.html)

    • 使用 HTMLTestRunner.py 生成 HTML 测试报告

    2、如何管理测试报告?

    • 以时间戳作为报告的名称

    六、测试邮件通知
    1、如何定义自己的邮件服务?

    • 邮箱设置(SMTP)

    2、如何自动发送测试报告?

    • 使用 SendReport.py 发送测试报告

    欢迎关注微信公众号"测试开发Stack"

  • 相关阅读:
    [转].net自定义验证控件CustomValidator的使用
    After Effects CS4入门经典—高手之路
    [转]用JS获取地址栏参数的方法(超级简单)
    SpringBoot中通过SpringBootServletInitializer如何实现容器初始化
    SpringBoot之二:部署Spring Boot应用程序方式
    Zookeeper学习(八):Zookeeper的数据发布与订阅模式
    Dubbo各种协议详解
    Annotation之四:注解中的-Xlint:unchecked和 -Xlint:deprecation
    mina在spring中的配置多个端口
    Mina2中IoService
  • 原文地址:https://www.cnblogs.com/liushengchieh/p/10939118.html
Copyright © 2020-2023  润新知