1,如何分层实现自动化测试
- UI自动化回归
- 接口自动化
- 单元测试+白盒测试
2, 封装自动化测试框架
自动化框架主要的核心框架就是分层+PO模式,将测试逻辑和代码分开,提高代码的复用性,分为:基础封装层BasePage,po页面对象层,TestCase测试用例层,测试套件层
3,自动化测试过程中,你遇到什么问题,是怎么解决的
- 频繁的变更页面,经常要修改页面对象里面的代码
- 自动化测试偶尔出现误报
- 自动化测试结果出现覆盖的情况
4,如何降低自动化维护的成本
- 选取测试用例时,尽可能选取比较稳定的内容做自动化测试(需求变更不多的,主要功能)
- 测试人员在编写测试脚本时对脚本的质量要求,重用性,复用性,搭建高质量的测试框架
- 测试工具选择使用比较专业的测试软件,以及硬件服务的配套使用
- 提高测试人员的编写代码能力,能创造出更多的测试工具
5,如何保证脚本的有效性
- 使用分层结构实现业务逻辑,脚本,数据分离
- 使用PO设计模式,将一个页面用到的元素和操作步骤封装到页面层中,如果一个元素定位发生了改变,我们只用修改这个页面的元素属性
- 对于页面层的方法,我们尽量从正向逻辑去分析,一个方法是一个独立的场景
- 测试用例设计中,减少测试用例之间的关联
- 元素定位时,尽量使用xpath相对路径来定位,优先选择id,因为id是唯一的
6,自动化测试时使用的时什么测试框架
- python+selenium+unittest+htmltestrunner:UI自动化测试框架
- python+selenium+pytest+yum:UI自动化测试框架
- python+request+pytest+yum:接口自动化测试框架
- python+Appium+pytest+yum:app自动化测试框架
选择自己擅长的一种回答即可
7,常见的selenium的异常有哪些
NoSuchElementException:没有该元素异常
TimeoutException : 超时异常
ElementNotVisibleException :元素不可见异常
NoSuchAttributeException :没有这样属性异常
NoSuchFrameException :没有该frame异常
8,脚本可以在不同的浏览器上运行吗
可以,测试脚本可以在IE,火狐,谷歌都可以运行。实现的思路是封装一个方法,分别传入各个浏览器的字符串,IE就传入IE,火狐就传入FireFox,谷歌就传入Chrmoe,需要注意的是每个浏览器使用的驱动不一样,下载对应的驱动即可
9,什么是PO模式
PO模式是Page Object的简称,他是把一个页面,当作是一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为,把业务逻辑分开,提高了代码的复用性,PO模式分为了四层架构,分别是:基础封装层BasePage,po页面对象层,TestCase测试用例层,和测试报告层
10,什么是进程,线程和协成
进程:是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序的载体
线程:是程序执行中一个单一的顺序控制流程,是程序执行的最小单元,是处理器调度和分派的基本单位
协成:是一种基于线程之上,但又比线程更加轻量的存在,这种由程序员自己写的程序来管理的轻量级线程叫做【用户空间线程】,具有对内核来说不可见的特性
进程和线程的区别:
- 线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位
- 一个进程由一个或者多个线程组成,线程是一个进程中代码的不同执行路线
- 进程之间相互独立,但同一个进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源,某进程内的线程和其他进程不可见
- 调度和切换:线程上下文切换比进程的上下文切换快