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

一、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"

posted @ 2019-05-28 17:49  Shengjie  阅读(1849)  评论(0编辑  收藏  举报