自动化框架搭建面试题

article/2025/10/18 21:32:19

面试

1、接口自动化和web自动化有多少case ?覆盖率是多少?全部执行完需要多久?

2、接口自动化测试怎么做? web自动化测试怎么做?

3、什么是POM模式?为什么要使用它?

4、说说你对数据驱动和关键字驱动的理解?

5、web自动化测试用例如何设计?如何提高web自动化用例脚本的稳定性?

6、举例说明一下你在自动化测试过程中碰到过哪些异常?用到了哪些Python库?

7、自动化测试过程中,你遇到了哪些问题,是如何解决的?

8、在上一家公司做自动化测试用的什么框架?

9、自动化中有哪三类等待?他们有什么特点?

10、在执行脚本过程,如何实现当前元素高亮显示?
11、在现有基础上给你一个新的业务线你是怎么做接口自动化的?

12、接口自动化测试框架中接口关联你们是怎么处理的?

13、Requests中的Session会话管理的作用是什么?

14、接口自动化测试中断言是如何实现的?

15、接口自动化测试框架中动态参数接口,加密接口,签名接口你们是怎么处理的?

 一、接口自动化和Web自动化有多少case?覆盖率是多少?全部执行完需要多久?

——先执行接口自动化,在执行web自动化,在同一个自动化框架下实施

  • 接口自动化测试的case数是根据接口数而定,100个接口,接口自动化case大概在2000-3000之间。
  • 接口自动化的覆盖率可以达到100%,有特殊情况下,难以做的,最少可达到95%以上;
  • web自动化测试case是根据业务用例而定,1000个功能测试用例,那么web自动化测试用例,大概在200-300左右。覆盖率在30%左右。
  • 所有的用例全部执行完成在:30-60分钟左右,如做分布式,时间会更短

二、接口自动化测试怎么做?web自动化测试怎么做?

——面试官是想要听具体的细节:

  • 可行性分析

  1. 项目组做自动化的可行性分析,自动化率能够实施到什么样的程度,项目时间够不够长,至少的是1年以上的项目。
  2. 需求会不会频繁的变更
  3. 自动化的脚本是不是可以持续反复的使用
  4. 自动化的投入产出比是不是符合预期
  • 做调研

  1. 调研测试团队对于自动化技术的程度,他们的技术有没这个能力去做,如果有,一般会伴随着demo演示【seleium、rf(纯关键字驱动)、request】
  • 计划制定

  1. 自动化框架的搭建,逐步实施,发现框架的问题进行改善

制定计划:功能测试中提取或编写测试用例,由leader编写自动化框架,组员编写和调试自动化测试脚本,无人值守(Jenkins持续集成),脚本的维护。

  • 把自动化流程化,框架出使用文档和规范文档
  • 持续不断的完善框架
  • 把自动化测试标准推广到其他的项目

三、什么是POM模式,为什么要使用它?

  • POM模式:全称page object model,简称PO,页面对象模型。意思是把一个页面当成一个对象,页面的元素就是对象的属性,页面的操作就是对象的行为(方法),一般情况下PO分为三层架构:
  1. 基础封装层---BasePage
  2. PO页面对象层
  3. 测试用例层---TestCase
  • 为什么使用?
  1. 使测试用例更简单、更清晰、不冗余,把很多的业务操作封装到PO页面对象层,用例只需要调用即可
  2. 如果页面有变动,只需要修改PO页面对象层的属性即可,增加代码的可维护性

四、说说你对数据驱动和关键字驱动的理解?

  • 数据驱动:是从数据文件(Excel、CSV、Yaml、数据库 等)读取后输入、输出的数据,然后通过变量传入自动化测试用例中,在整个过程中:数据的读取、测试状态、测试信息全部在测试用例里面,测试数据都是数据文件中,通过修改数据达到驱动自动化用例的方式叫做数据驱动。

  • 关键字驱动:是从面向对象的思维出发,同样的业务逻辑会封装一个函数,这个函数名就叫关键字,不同的关键字实现不同的业务逻辑,当所有的业务逻辑都可以通过调用关键字来实现的时候,就是关键字驱动框架。(如:业务分类为ABCD 4个关键字,所有的业务都可以通过这4个来完成,就可以成为关键字驱动框架;在比如我们的POM,每个操作行为会定义一个函数,每个函数名就属于是关键字)

一般情况下企业里面都是:数据驱动 + 关键字驱动 一起来使用

五、Web自动化测试用例如何设计?如何提供Web自动化用例脚本的稳定性?

  1.  用例设计: 

   自动化用例是从功能测试用例里面提取出来的,主要提取的是冒烟用例和回归测试的用例,提取需要遵循以下原则:

(1)优先覆盖核心功能用例——核心流程用例

(2)尽量不要选复杂的用例(不是主流程的可以不选,核心流程还是需要写的)

(3)选择一些重复执行的用例

(4)一般选取正向用例(核心流程中反向用例会选取)

2. 如何提高稳定性:

(1)尽量使用相对路径定位元素

(2)定位元素需要封装显示等待(保证元素可正常加载出来)

(3)用例和用例之间尽量避免相互依赖

(4)加入用例失败重跑机制(pytest)

(5)自动化测试的环境分开其他的环境(是单独起来,不与开发等环境有参杂)

六、举例说明一下你在自动化测试过程中碰到过哪些异常?用到了哪些Python库?

  • 异常

——前端

  1. ElementNotSelectableException :元素不能选择异常

  2. ElementNotVisibleException :元素不可见异常

  3. NoSuchAttributeException :没有这样属性异常

  4. NoSuchElementException:没有该元素异常

  5. NoSuchFrameException :没有该frame异常

  6. TimeoutException : 超时异常

  7. Element not visible at this point :在当前点元素不可见

——接口

  1. IndexError            ---下标越界
  2. TypeException     ---类型异常(如:应该传入字典,传入的是字符串)
  • Python库

1、web

webdriver、webdriverWait、os、xlrd、xlwt、time、unittest、logging、sys、htmltestrunner

2、接口

json、jsonpath、yaml、requests、re(正则表达式)、pytest、allure、pymysql

七、自动化测试过程中你遇到可哪些问题,是如何解决的?

  1. 元素定位不到——【更换工具、百度搜索、请教他人】
  2. 自动化测试用例出现误报(元素频繁的变更、环境的不一样等导致误报)——【参考五:如何提高稳定性】
  3. 每一次自动化测试的结果会被覆盖(只会显示最后一次执行的结果,之前的会被覆盖)——【更改测试报告名称,使用time模块加上当前时间】
  4. 数据库校验(对数据库结构非常清晰)

八、在上一家公司做的自动化用的什么框架?

  • web:
  1. python + selenium + unnittest/pytest + ddt/parameters + htmltestrunner/allure + Jenkins
  2. rf +selenium2library
  • 接口: python + requests + pytest + parameters + allure +jenkins + yaml

九、自动化中有哪三类等待?他们有什么特点?

  1. 线程等待:强制等待,建议少用(属于线程休眠,必须等待所定义时间完成后才会继续执行后边的脚本)

  2. 隐式等待:全局的等待,必用(必须等待所有的元素加载完成之后才不会继续等待,才会继续执行后边的代码)

  3. 显示等待:智能等待,必用(一般会和匿名函数一起使用,一般用于结合元素定位的封装);可以指定到某一个元素,等待某一个元素,只要这个元素加载完了,就会执行下一个脚本。

通常是【隐式等待】、【显示等待】结合使用,而【线程等待】使用多了,就会是代码执行的很慢。

十、在执行脚本过程,如何实现当前元素高亮显示?

  • 必做,利用 JavaScript 去修改你当前定位到的元素的 style(样式),在style里面加入:border: 3px red solid(3像素 红色 实线) 这个边框样式,其实就是利用javaScript去修改当前元素的背景颜色来到达高亮显示的效果。——编写在定位元素的封装的函数中

十一、在现有基础上给你一个新的业务线,你是怎么做接口自动化的?

  1. 熟悉新的业务线接口业务

  2. 熟悉已经搭建好的接口自动化测试框架

  3. 在当前的框架里面加入符合框架的接口自动化用例

  4. 根据实际情况可以提出一些对框架改进的建议

十二、接口自动化测试框架中接口关联你们是怎么处理的?

  •  通过一个yaml文件来独立的保存所有的中间提取的变量,这个变量在执行用例之前清空(使用pytest中预置函数模块conftest)。

  • 在测试用例的yaml文件里面通过一个关键字extract提取变量:json提取和正则表达式提取,

  • 在下一个接口通过 {{}} 或 ${} 或是 热加载 的方式取值。【热加载的作用就是可以让yaml文件直接调python方法】

 

十三、Requests中的Session会话管理的作用是什么?

  • 因为很多接口都需要使用 cookie 或 session 来记录登录状态,而很多的接口必须要有这个登录才可以请求成功,Requests中的Session会话管理的作用就是自动的记录cookie和session的登录状态。(会把一个接口产生的cookie自动的传给第二个、第三个接口等,就是它的作用)

十四、接口自动化测试中断言是如何实现的?

  • 把断言封装成一个方法,这个方法会读取yaml文件里面的validate字段,包括断言的方式和断言的数据,然后在后台实现了断言。并且体现在测试报告里面。
  • 框架封装完成之后,不需要写任何Python代码就可以实现断言

功能测试需要写任何Python脚本,只需要写yaml格式的测试用例即可实现接口自动化。

十五、接口自动化测试框架中动态参数接口,加密接口,签名接口你们是怎么处理的?

  • 热加载(httprunner)

十六、你还有什么需要了解的嘛?

  1. 我想了解下咱们公司目前正在做的一些项目?
  2. 我想了解下咱们公司开发团队和测试团队的人员架构?

 


http://chatgpt.dhexx.cn/article/XPESvDJg.shtml

相关文章

手把手教你从0到1搭建web ui自动化框架(python3+selenium3+pytest)

-前期准备 -环境 -实战: 从0开始 前期准备 为更好的学习自动化框架搭建,你需要提前了解以下知识: python基础知识 pytest单元测试框架 PO模式 selenium使用 环境 本次我们自动化环境为: macpython3selenium3pytest6.2.4 (不管是win还是mac&…

自动化测试框架总结

目录 1. 单元测试框架 2. Web自动化测试框架 3. iOS自动化测试框架 4. Android自动化测试框架 1. 单元测试框架 几乎所有的主流语言,都会有其对应的单元测试框架,下面简单介绍一下python,java,C#三种语言的常见单元测试框架 1.1 Python python常见单元测试框架…

自动化框架到底是什么?

如今,随着敏捷和 DevOps 软件方法论的发展,以及企业寻求更快发布和高质量产品的需求,它需要比手动测试方法更快,更高效的软件测试方法。微型,小型和中型企业(SME)使其测试过程自动化变得越来越必…

UI 自动化框架对比2

1、pytest 在开始本文之前,我想跟大家澄清两个概念,一个是测试框架一个是测试工具。很多人容易把他们搞混了,测试框架是诸如 Unittest、Pytest、TestNG 这类,而测试工具指的则是 Selenium、Appium、Jmeter 这类。 测试框架的作…

APP自动化简单理解(在python中实现简单的app自动化框架)

一、app自动化环境搭建 1、安装jdk及配置jdk的环境变量 app底层是c语言,应用层是java,所以需要jdk 2、安装SDK,配置android SDK环境 3、安装模拟器 4、下载安装Appium工具 01、appium客户端 appium destop 服务器 02、命令行安装&…

UI自动化框架如何设计及搭建?

目录 UI自动化框架 自动化原则: 如何减少自动化维护成本? UI自动化框架优化方案:(在不增加维护成本前提下) UI自动化脚本可分为3种: 已经实现自动化的模块可以不做手工测试了吗? UI自动化…

接口自动化框架

接口自动化框架讲解 框架结构 接口测试框架的结构如下图所示: 接口测试框架的结构说明: - API用于封装被测系统的接口(用requests模块封装的请求方法) - TestCase将一个或多个接口封装成测试用例,并使用UnitTest管…

什么是自动化框架?

前言 无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架。之前学习自动化测试的过程中,一直对“框架”这个词知其然不知其所以然。 最近看了很多自动化相关的资料,加上自己的一些实践,算是对“…

接口自动化框架搭建

1.自动化测试流程 -- 需求分析。需求文档,接口文档,抓包接口 -- 测试计划。通常包含项目的进度,是否自动化,优先级 -- 测试用例(是从手工测试提取出来的) -- 用例评审 -- 执行测试。(写代码…

2023最全自动化测试框架讲解,不会真不行!

无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架。之前学习自动化测试的过程中,一直对“框架”这个词知其然不知其所以然。 最近看了很多自动化相关的资料,加上自己的一些实践,算是对“框架”…

【测试开发】几种常见的自动化测试框架

几种常见的自动化测试框架 在软件测试领域,自动化测试框架有很多,这里主要介绍几种常用的自动化测试框架。 1.pytest pytest 是 Python 的一种单元测试框架,与 Python 自带的 unittest 测试框架类似,但是比 unittest 框架使用起…

【自动化框架】

自动化测试框架就是:为了对一个指定的系统做自动化测试而封装的一个半成品,自动化测试攻城狮可以调用这个半成品封装好的方法去实现一个指定系统的自动化测试。 根据驱动模式不同自动化测试框架分为四种模式: (1) 数据驱动框架 (2) 关键字…

常见的主流自动化测试框架,这5种能帮到你很多

今天我们要向大家介绍的是常见5种主流自动化测试框架,包括优缺点等内容,供大家参考学习。 1.ATF 自动化测试框架AutoTestFramework是B/S架构框架,可实现Selenium等多种自动化测试全流程、团队化管理的高级框架平台,通过集成自动化…

【自动化测试】自动化测试框架与工具

文章目录 1)什么是自动化测试框架?1.1 什么是框架?1.2 什么是自动化测试框架?1.2.1 优点:1.2.2 框架的基本组件1、需要配置文件管理:2、业务逻辑代码和测试脚本分离3、报告和日志文件输出4、自定义的库的封…

从零搭建完整python自动化测试框架(UI自动化和接口自动化 )——持续更新

本自动化测试框架采用python unittest 的基础来搭建,采用PO模式、数据驱动的思想,通过selenium来实现WEB UI自动化,通过request来实现接口自动化。移动终端的自动化也可在该框架基础上去构建补充。 目录 总体框架PO模式、DDT数据驱动、关键字…

Linux必备的小技巧——查看历史操作和屏显信息

通常在linux查看历史操作信息,都是查看日志文件,Linux的日志文件一般都保存在/var/log文件夹下: 用如下命令即可查看: cat filename 查看日志,会打开整个文件,直接跑到最后面tac filena…

linux下安装CUDA和cudnn

linux下安装CUDA和cudnn 2、安装CUDA10.1 在CUDA官网选择系统对应的版本下载CUDA 我的系统是Ubuntu18.04 64位,我选择下载最新版本的CUDA10.1: 输入以下命令安装CUDA sudo sh cuda_10.1.105_418.39_linux.run 显卡驱动已在上面安装了,这里一…

Linux和其他操作系统的区别

前言 这是我听老师讲课做的笔记,考试要看的。 这是视频地址 作者:RodmaChen 关注我的csdn博客,更多Linux笔记知识还在更新 为什么用Liunx系统 Linux和windows的区别Linux和Unix操作系统的区别 Linux和windows的区别 1.免费与收费 Windows 平台: Window…

linux下如何查看驱动?(CH341)

文章目录 背景命令 背景 Linux下有时候我们在接上串口后,在/dev/下找不到ttyUSB*,这时我们需要查看下本机是否安装了相应的驱动。 命令 lsmod | grep ch341 如上图,便是表示目前pc中存在ch341驱动,无需重新安装。

linux怎么查询数据库端口,linux下怎么查看数据库端口

满意答案 ai_yuming 2017.08.26 采纳率:50% 等级:8 已帮助:759人 如何查看mysql 默认端口号和修改端口号 1. 登录mysql [root@test /]# mysql -u root -p Enter password: 2. 使用命令show global variables like port;查看端口号 mysql> show global variables like …