单元测试框架(二)

# !/usr/bin/env python
# -*- coding:utf-8 -*-
‘‘‘
Java的继承与Python的继承有什么区别
    Java:对象在调用父类中方法时,该方法调用的方法会优先使用子类的方法,调用的成员变量会优先调用父类的变量。
    Java:因为涉及到变量属性的问题,必须对对象进行降级和转换才能使用子类的方法和属性。
    python:对象在调用父类中方法时,调用的方法和变量都优先调用子类的方法和变量。
    python:天生多态

如果子类重写了父类的方法,那么实例化子类后,调用重写后的方法,调用的是子类的方法还是父类的方法
class Person(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def show(self):
        print(‘name is {0},age is {1}‘.format(self.name, self.age))


class Work(Person):
    def __init__(self, name, age, salary):
        # super()的方法继承父类的实例属性
        # super().__init__(name, age)
        Person.__init__(self, name, age)
        self.salary = salary

    def show(self):
        print(‘name is {0},age is {1},salary {2}‘.format(self.name, self.age, self.salary))


objPerson = Work(name=‘admin‘, age=19, salary=1000.1)
objPerson.show()
    优先调用子类方法

UI自动化测试:
常用的元素定位有那几种方法,请举例说明
在element加s为多种元素定位方法。
一般用于以下场景:
(1)批量操作对象,比如将页面上所有的复选框都被勾选。
(2)先获取一组对象,再在这组对象中过滤出需要具体定位的一些对象。
    id | find_element_by_id()
    name | find_element_by_name()
    class name | find_element_by_class_name()
    tag name | find_element_by_tag_name()
    link text | find_element_by_link_text()
    partial link text | find_element_by_partial_link_text()
    xpath | find_element_by_xpath()
    css selector | find_element_by_css_selector()

单个元素定位与多个元素定位的区别是什么?
    单个元素标签用于定位单个元素
    多个元素定位用于定位一组元素

如果是iFrame的框架,如何来定位里面的元素属性的对象
    先进入对应frame框架再定位元素
    frame框架一般通过ID、NAME、索引形式

怎么理解面向对象设计模式
    创建可以跨多个测试用例的共享代码
    减少重复代码
    减少维护成本

怎么理解显式等待和隐式等待
    显示等待:定义了等待条件,只有该条件触发,才执行后续代码。
    隐式等待:尝试发现某个元素的时,如果没立刻发现,就等待固定长度的时间。

在测试中遇到多窗口,具体怎么解决,请描述具体的步骤和编写具体的案例代码
    对A窗口句柄赋值给一个变量
        nowHandler=self.driver.current_window_handle
    对B窗口句柄赋值给一个变量
        allHandlers=self.driver.window_handles
    对窗口句柄进行对比循环到新窗口
        for handler in allHandlers:
            if nowHandler!=handler:
            self.driver.switch_to.window(handler)
    判断窗口是否为预期窗口
            self.assertEqual(self.driver.title,‘QQ注册‘)

单元测试框架:
unittest的常用组件有哪些
test fixture:初始化和清理测试环境
    setUp()和setDown(),
    setUpclass()和setDownclass()最常用的方法
test case:单元测试用例
    TestCase是编写单元测试用例最常用的类
test suite:单元测试用例的集合
    TestSuite 是最常用的类
test runner:执行单元测试
test report:生成测试报告

unittest中怎么理解测试固件
    测试固件是执行测试时的准备工作和收尾工作,测试环境初始化和关闭,数据进行还原操作

怎么理解两种测试固件的区别的测试
    setUp()、setDown()用例类
        打开浏览器输入对应网址这些操作
        给数据还原,这就是执行用例的后置条件。
        对每个用例执行
    setUpclass()和setDownclass()测试类
        打开浏览器输入对应网址这些操作
        给数据还原,这就是执行用例的后置条件。
        对整个测试类执行一次

在unittest测试框架中,加载所有的测试模块使用到的方法是什么?具体参数是什么?
    import unittest
    引入unittest库
    unittest.TestLoader().discover
    获取被执行的测试套件

在unittest中使用那个库来生成对应的测试报告
    引入import HTMLTestRunner.py生成

一个完整的测试用例包含哪些步骤
    测试需求 --> 分析需求 --> 编写用例 --> 划分用例的优先级

怎么理解参数化
    @parameterized.expand([
        param(‘‘, ‘‘, ‘‘),
        param(‘‘, ‘‘, ‘‘),
    ])
    测试进行相同的步骤输入的数据不的

测试按阶段划分,主要分为那几个阶段
    单元测试,集成测试,系统测试,验收测试

怎么理解等价类和边界值
    等价类可分为有效等价类、?效等价类,是常?的?盒测试?例设计?法。
    边界值分析法是作为对等价类划分法的补充,其测试?例来?等价类的边界。针对某一事物设计他的测试用例

请描述一个完整的测试流程
PRD产品需求文档(交互,逻辑)
    PRD评审
    研发(写代码技术档案,写代码)
    测试(写计划,写方案,写测试用例)
    转测试(冒烟测试,完成,上线)
    开始测试

‘‘‘

  

单元测试框架(二)

上一篇:Codeforces Round #739 (Div. 3)


下一篇:cocos creator:如何绑定参数到编辑器