ui自动化测试面试题

1、页面对象设计模式的优势

1)、创建可以跨多个测试用例共享的代码
2)、减少重复代码的数量
3)、如果用户界面发生了维护,我们只需要维护一个地方,这样修改以及维护的成本相对而言是比较低的

2、每个目录结构表达的意思

base:基础层,主要编写底层定位元素的类
page:对象层,编写具体的业务理解,把页面每一个操作行为单独的写一个方法或者函数
test:测试层,里面主要是测试模块
utils:工具类
common:公共类 里面编写公共使用到的方法
data:存储测试使用到测试数据
config:配置文件存储目录
report:测试报告目录


3、自动化测试用例注意事项(原则),也可以说你的测试用例是怎么写的

1)、在一个测试类里面,每一个测试方法都是以test开头的,test不能是中间或者尾部,必须是开头,建议test_

2)、每一个测试用例方法都应该有注释信息,这样在测试报告就会显示具体的测试点的检查点

3)、在自动化测试中,每个测试用例都必须得有断言,无断言的自动化测试用例是无效的

4)、最好一个测试用例方法对应一个业务测试点,不要多个业务检查点写一个测试用例

5)、如果涉及到业务逻辑的处理,最好把业务逻辑的处理方法放在断言前面,这样做的目的是不要因为业务逻辑执 行错误导致断言也是失败

6)、测试用例名称最好规范,有约束

7)、是否先写自动化测试的测试代码,在使用自动化测试方式写,本人觉得没必要,毕竟能够做自动化测试的都具 备了功能测试的基本水平,所以没必要把一个业务的检查点写多次,浪费时间和人力成本。


4、自动化测试的流程

1)首先和主管领导开会讨论有哪些模块可以做自动化测试

2)和主管领导对一下场景是否考虑周全

3)梳理出可做的模块之后开始编写测试计划

4)   编写测试用例,搭建测试环境

5)执行测试用例

6)分析测试结果


5、输出测试报告

1)、完成测试用例脚本编写。
2)、下载并复制HTMLTestRunner.py文件到我们的项目文件夹中,这个文件提供了一个比较美观的测试报告的模板。
3)、编写执行代码。如:

import os
import unittest
import HTMLTestRunner
import time


def getSuite():
    '''获取所有需要执行的测试模块'''
    suite = unittest.TestLoader().discover(
            start_dir=os.path.dirname(__file__),
            pattern='test_*.py')
    return suite

def getNowTime():
    return time.strftime('%y_%m_%d %H_%M_%S',time.localtime(time.time()))

def main():
    filename=os.path.join(os.path.dirname(__file__),'report',getNowTime()+'report.html')
    fp=open(filename,'wb')
    runner=HTMLTestRunner.HTMLTestRunner(
        stream=fp,
        title='UI自动化测试报告',
        description='UI自动化测试报告'
    )
    runner.run(getSuite())

if __name__ == '__main__':
    main()

  


6、梳理出UI自动化测试主要是做什么

1)、UI自动化测试是单元测试,是针对函数最小颗粒度的测试,就是可以看见业务代码,它对应的是白盒测试

2)、UI测试是最接近软件真实用户使用行为的测试类型。通常是模拟真实用户使用软件的行为,即模拟用户在软件界面上的各种操作,并验证这些操作对应的结果是否正确。

posted @ 2022-06-17 17:59  段舒元  阅读(353)  评论(0)    收藏  举报