阿里P7大牛整理自动化测试高频面试题
最近好多粉丝咨询我,有没有软件测试方面的面试题,尤其是Python自动化测试相关的最新面试题,所以今天给大家整理了一份,希望能帮助到你们。
接口测试基础
1、公司接口测试流程是什么?
从开发那边获取接口设计文档、分析接口并进行用例设计、并提前录入到接口测试工具
jmeter,等开发那边进行调试的时候(集成测试),执行接口测试用例,把发现的缺陷给开
发
2、从开发那获取接口设计文档之后,你如何进行分析?
2.1)单个接口的相关信息(接口功能、请求类型、请求地址、请求参数、返回值)
2.2)接口组合形成的业务
3、接口测试用例设计主要使用哪些用例设计方法?
接口测试一般只需要考虑入参形式的变化和接口的业务逻辑,一般设计接口测试用例采用等
价类、边界值、场景法居多
4、接口测试执行中比对数据库吗?
需要进行,因为接口的返回值类似于提示信息,而接口对数据的操作还要进行深层次的检查
5、谈谈你对 HTTP 协议的了解?
超文本传输协议,端口为 80,特点(无记忆功能、快速)是由请求和响应两部分组成请求由
请求头、请求行、请求正文组成;响应是由响应头、响应行、响应正文组成,之前我们公司
的接口是采用 https 协议的。
https http+ssl 协议 端口 443 面向安全的超文本传输协议
6、get 和 post 请求有什么区别?
get 和 post 请求都是客户端向服务器提交的一种请求方式
get 是明文传输参数、倾向于请求服务器资源。比如打开网站
post 传输数据不可见,安全性高,倾向于向服务器提交数据,比如注册等
7、响应状态码有哪些?
1xx:指示信息--表示请求已接受,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
8、在接口测试过程中发现的 bug 多不多?
在联调阶段执行接口测试发现的 bug 会很多
在冒烟测试、回归测试阶段执行接口测试的时候,bug 就很少
9、详细描述之前测过的一个接口如何设计用例?
该题目考察你是否做过真正的接口测试。
需要根据简历中的项目去预先人为的造一些接口,然后进行讲解。
比如:在上一个项目中,我做过一个获取手机验证码的接口,该接口需要使用 post 方式传
递一个手机号参数,传送成功,返回状态码为 0 的接口信息,并能收到验证码;手机号错误,
返回状态码为-10001 和提示信息;已注册的手机号返回状态码为-10003 和提示信息;我在
进行该接口用例设计的过程中,考虑这三种业务情况,分别设计一个测试用例
10、描述之前发现过的接口缺陷?
该题目和上题类似,根据简历中的项目去造一些接口缺陷,回答思路可以先向上题一样。
先讲一个接口业务逻辑,然后再讲,比如我之前使用已注册手机号去调用该注册接口返回状
态码为 0,注册成功,实际应该返回-10003 才对
11、接口测试中有哪些要注意的测试点?
11.1)接口中返回了图片地址,要手工去进行图片的测试(大小、内容)
11.2)接口完成查询功能的时候,数据返回的排序显示
11.3)接口测试的时候,关注参数的默认值、必填项
12、接口执行测试后返回结果做对比,一般比对哪部分内容?
之前必须要对比的就是返回状态码,其次再去对比返回其它关键内容
13、为什么开展接口测试?
13.1)接口测试属于集成测试、测试介入越早、就越能在项目早期发现问题,其修复问题的
成本越低
13.2)接口测试非常快速、UI 自动化执行一个测试用例 10S 左右、接口测试用例执行的话,
需要的时间是毫秒级的
-
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
-
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
-
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
-
分享他们的经验,还会分享很多直播讲座和技术沙龙
-
可以免费学习!划重点!开源的!!!
-
qq群号:455787643【暗号:csdn11】
接口测试工具
1、之前在接口测试过程中,使用的工具是什么?
postman(不知道)和 jmeter(5.1)
2、之前用过抓包工具没有?如何使用的?
之前在项目中用过 fiddler 抓包工具进行 HTTP 协议请求的抓取
打开 fiddler 之后,默认浏览器配置了 127.0.0.1 8888 端口的代理,在 fiddler 设置好
过滤策略后,打开需要进行抓包的网站进行操作,就可以进行抓包
3、json 数据是什么,你平时如何解析 json 数据?
一种开发常用的数据报文格式,由键值对和数组两种格式构成。可以通过工具 bejson 网站
等
4、postman 你在工作中使用流程是什么样的?
1) 编写好用例
2) 在 postman 先建好 url 环境变量
3) 根据接口用例所属的模块新建集合管理
4) 在集合中不同模块下录入测试用例
5) 录入测试用例的时候根据预期结果在 tests 页签中增加断言
6) 导出通过 Newman 去运行
5、postman 中设置环境变量有什么用?
在之前项目中,接口测试测试的环境有开发环境,测试环境等,为了测试的时候方便,就在
postman 设置环境变量,到时所有接口都引用该环境变量,这样就不用为了切换环境导致每
次都去修改被测系统接口的主机地址;点击右上角环境变量管理按钮-新建环境变量,在脚
本中使用{{变量名}}去调用
6、在接口测试中关联是什么含义?如何用 postman 设置关联?
关联就是把上一个接口返回值的部分截取出来,作为下一个接口的参数,能让接口串联运行
在 postman 中设置关联的步骤如下:
1) 先通过正则表达式提取的方式或 json 取值的方式把下一个接口需要的信息从上一个接
口截取出来
2) 使用设置全局变量的代码把取出来的值保存到全局变量
3) 在下一个接口中,使用{{全局变量}}代替要替换的静态值
7、postman 支持什么类型的协议测试?
http 和 https 协议的
8、postman 参数化有哪几种方式?
内建变量、pre-scripts 编写 js 脚本、批量运行时导入 csv 或 json 格式的文件
9、Newman 如何执行 postman 脚本?
Newman run 脚本名称 也可以添加参数生成 html 报表等
10、jmeter 之前用的是什么版本?如何安装的?
jmeter 用的是 5.1.1 版本,安装如下:
先在电脑上安装 jdk1.8 或以上的版本,然后从官网下载最新的安装包,解压后,进行环境
变量的配置,配置好后即安装完成
11、在项目中如何用 jmeter 进行接口测试?
1) 把线程组数量设置为 1,循环次数设置为 1
2) 配置好全局变量 URL 通过配置元件---用户自定义的变量添加
3) 增加配置元件 http 请求默认值,放置在用户定义的变量之后
4) 添加事务控制器管理和组织测试用例
5) 在事务控制中添加 http 请求添加测试用例中的接口请求信息
6) 添加对应的断言元件进行断言
12、jmeter 中如何设置断言?
右击请求---断言---响应断言---响应断言界面输入要检查比对的项,设置好断言后,执行
接口测试如果是通过的,查看结果树不会有任何提示,如果断言失败,就会有红色报错。如
果接口返回的数据是 json 数据,也可以添加 json 断言
13、jmeter 中如何实现关联?
先从上一个接口中通过正则表达式提取器或 jsonpath 解析器截取下一个接口需要的参数值
保存到变量,然后在写一个接口中通过${变量名}去获取
14、jmeter 添加 http 请求默认值元件有什么作用?
添加并设置好后,相当于给所有的 http 请求取样器都设置了默认值,既不用填写取样器中
的比如主机地址、端口、代理等,都可以使用 http 请求默认值设置的
15、jmeter 参数化的方式有哪几种可以实现?
1) 配置元件---用户定义的变量元件可以设置全局变量
2) 函数助手对话框中可以选择比如随机字符串、随机日期、随机数字作为参数化
3) 可以使用 csv 文件作为参数化,通过配置元件中的 csv data set config 元件进行设
置即可
自动化测试基础
1、公司如何把自动化测试在项目中开展起来?
项目组调研自动化(选择工具)--- 开会演示 demo(例子)--- 在项目中开展自动化 ---
把该项目的自动化流程、框架固化成文档 --- 推广到公司的其它项目组应用
2、描述公司自动化测试流程?
编写自动化测试计划-->设计自动化测试用例-->编写自动化测试脚本-->调试并维护脚
本-->无人值守测试-->后期维护(添加用例、开发更新版本)
3、自动化测试用例如何编写?
如下答案二选一:
3.1、自动化测试工程师自己设计的,一般刚开始已基本业务流程为主(登录--完成一个业
务--退出)
3.2、从系统测试用例中进行筛选或由业务工程师提供
4、上一个项目中自动化测试的执行策略?
上一个项目中是定时执行的,一般设置的执行时间是晚上和周末,执行完毕会自动发送邮件
通知
5、自动化测试发现 BUG 多吗?
不多,因为之前项目组是把已经测试通过的基本功能再进行自动化脚本编写和在后续版本执
行自动化测试,它主要是保证已经测试通过的功能在新版本更新后也很稳定,不会产生功能
错误
6、在上一家公司你是如何开展自动化测试的?
在进上家公司之前,我有一点 Java/python 代码基础,也简单学习过自动化,加入公司之后,组长做了一些岗前培训--代码规范、自动化测试框架组成--实际做自动化过程中,根据组长的分工,编写相应的自动化测试脚本放到指定位置、自测没问题提交到 svn 进行管理,中途遇到问题就上网解决或找组长解决
7、自动化测试的价值在哪里?你们公司为什么要做自动化测试?
引用自动化测试之后,能代替繁琐的手工测试工作,节省出来的时间把业务测试人员尽量集
中测试复杂的业务功能模块自动化测试一般是对固化下来的功能进行自动化,保证不会因为产品的更新导致之前固化下
来的功能出现 BUG
8、自动化测试产生误报怎么办?
误报就是指自动化测试发现了 bug,实际去通过手工测试去确认又不存在该 bug;误报原因:
元素识别不稳定---尽量提高脚本的稳定性;开发更新了页面---测试没有及时维护
9、自动化测试的价值体现在哪里?
自动化测试脚本在企业重复使用的次数越多,价值越大
10、自动化测试过程中,你遇到了哪些问题,是如何解决的?
10.1 自动化测试偶尔出现过误报
10.2 自动化测试结果出现覆盖的情况:Jenkins 根据时间建立文件夹
10.3 自动化测试代码维护麻烦:线性测试代码==引入框架
10.4 自动化测试进行数据库对比数据
自动化测试工具
1、在上一家公司做自动化测试用的什么框架?
可以说出以下自己擅长的一种:
1.1) python+selenium+unittest+htmltestrunner
1.2) java+selenium+testng+reportng
1.3) robotframework+Selenium2Library
2、做自动化测试过程中,你是如何定位和识别元素?
谷歌开发者工具打开之后,用鼠标选中元素去识别元素信息
元素定位使用定位 api,可以根据 id/name/classname/tagname/link_text/xpath/css
3、如果一个元素通过写的方式无法识别,会有哪些方面的原因,如何处理?
3.1)页面加载元素过慢,加等待时间
3.2)页面有 frame 框架页,需要进行跳转
3.3)可能该元素是动态元素,识别方式要优化
3.4)可能识别了元素,但是不能操作,先把前置的操作完成
4、对于属性动态变化的元素如何处理?
可以利用 xpath 的属性包含或属性开头来识别,或者通过 css 的属性开头、属性结尾、属性
包含来识别
5、元素定位方法你熟悉的有哪些?常用哪一种,为什么?
id,name,link_text xpath classname css
xpath 公司要求元素识别规范统一;xpath 是万能的
6、xpath 如何通过标签的文本内容定位
xpath 包含有 text()函数
7、遇到 frame 框架页面怎么处理?
使用 api 函数跳转进去 frame,frame 中页面操作完成,再跳转出来
8、遇到 alert 弹出窗如何处理?
使用 handle alert 跳转,跳转之后可以通过 accept dismiss text presskeys 去输
入使用 switch to alert 跳转,跳转之后可以通过 accept dismiss text sendkeys 去
输入
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。
相关文章:

阿里P7大牛整理自动化测试高频面试题
最近好多粉丝咨询我,有没有软件测试方面的面试题,尤其是Python自动化测试相关的最新面试题,所以今天给大家整理了一份,希望能帮助到你们。 接口测试基础 1、公司接口测试流程是什么? 从开发那边获取接口设计文档、分…...
vue如何实现路由缓存
(以下示例皆是以vue3vitets项目为例) 场景一:所有路由都可以进行缓存 在渲染路由视图对应的页面进行缓存设置,代码如下: <template><router-view v-slot"{ Component, route }"><transiti…...
基于Openjdk容器打包运行jar程序
文章目录 应用场景基于Openjdk容器打包运行jar程序1.编译项目成jar包2.构建Dockerfile文件精简版-含jar包精简版-不含jar包带注释版-含jar包 3.编译Dockerfile成镜像。4.运行镜像: 应用场景 部署多版本jdk的应用程序。 基于Openjdk容器打包运行jar程序 1.编译项目…...

DNN学习平台(GoogleNet、SSD、FastRCNN、Yolov3)
DNN学习平台(GoogleNet、SSD、FastRCNN、Yolov3) 前言相关介绍1,登录界面:2,主界面:3,部分功能演示如下(1)识别网络图片(2)GoogleNet分类…...
HTTP协议(超文本传输协议)
HTTP请求消息 http请求消息组成: 请求行 :包含请求的方法 操作资源的地址 协议的版本号 http请求方法: GET:从服务器获取资源 POST:添加资源信息 PUT:请求服务器更新资源信息 DELETE:请…...
FFmpeg的日志系统(ubuntu 环境)
1. 新建.c文件 vim ffmpeg_log.c2. 输入文本 #include<stdio.h> #include<libavutil/log.h> int main() {av_log_set_level(AV_LOG_DEBUG);av_log(NULL,AV_LOG_INFO,"hello world");return 0; }当log level < AV_LOG_DEBUG 都可以印出来 #define A…...

浅析VO、DTO、DO、PO
一、概念介绍 POJO(plain ordinary java object) : 简单java对象,个人感觉POJO是最常见最多变的对象,是一个中间对象,也是我们最常打交道的对象。一个POJO持久化以后就是PO,直接用它传递、传递…...

android kotlin基础复习 enum
1、kotlin中,关键字enum来定义枚举类型。枚举类型可以包含多个枚举常量,并且每个枚举常量可以有自己的属性和方法。 2、测试代码: enum class Color{RED,YELLOW,BLACK,GOLD,BLUE,GREEN,WHITE }inline fun <reified T : Enum<T>>…...

个股场外期权怎么交易?场外期权交易流程是怎样的?
今天带你了解个股场外期权怎么交易?场外期权交易流程是怎样的?个股场外期权是一种非标准化的期权合约,通常在场外市场(OTC市场)由金融机构和投资者之间进行交易。 场外个股期权主要功能 风险管理: 帮助投…...

企业选ETL还是ELT架构?
作为数据处理的重要工具,ETL工具被广泛使用,同时ETL也是数据仓库中的重要环节。本文将从解释ETL工具是怎么处理数据,同时介绍ELT和ETL工具在企业搭建数据仓库的重要优势。 一、什么是ETL? ETL是Extract-Transform-Load的缩写,将…...
【Spring Boot 3】【Web】同时启用 HTTP 和 HTTPS
【Spring Boot 3】【Web】同时启用 HTTP 和 HTTPS 背景介绍开发环境开发步骤及源码工程目录结构背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是…...

【Android】最好用的网络库:Retrofit
最好用的网络库:Retrofit 文章目录 最好用的网络库:RetrofitRetrofit的基本用法Retrofit的使用逻辑Retrofit的基本操作处理复杂的接口地址类型进阶删除提交header中指定参数 Retrofit构建器的最佳写法Retrofit的使用封装 用户网络请求的接口配置繁琐&…...

SpringBoot自动化配置原理
SpringBoot自动化配置原理 01-SpringBoot2高级-starter依赖管理机制 目的:通过依赖能了解SpringBoot管理了哪些starter 讲解: 通过依赖 spring-boot-dependencies 搜索 starter- 发现非常多的官方starter,并且已经帮助我们管理好了版本。 …...

2024级新生数组字符串专题题解
一、题解: 1.A-[NOIP2005]校门外的树_24级新生数组字符串训练题 (nowcoder.com) 这题常见的解法有两种: 第一种是这道题我们可以直接按照题目意思枚举 #include<bits/stdc.h> #define int long long using namespace std;int road[10010];sig…...
C++学习 虚函数,容器
一、虚函数 虚函数是C中的一种函数,允许子类重写父类中的函数,以便在运行时通过基类指针或引用调用子类的函数实现。虚函数的主要作用是实现多态性,这使得基类指针或引用可以根据实际指向的对象类型调用不同的函数实现。具体用法 虚函数的声…...

MacTalk 测评通义灵码,如何实现“微信表情”小功能?
作者:池建强,墨问西东创始人 前段时间,我写了篇墨问研发团队放弃 GitHub Copilot 的文章,没想到留言区一些读者推荐我们试试通义灵码,说它效果很不错。我呢,一直没腾出时间折腾。 直到月中时,…...

Canvas Confetti - 免费开源的五彩纸屑飞舞特效的 JS 库,多用于在网页上实现欢乐庆祝的场景
今天看科技周刊看到的一个酷炫的动效库,使用简单,视觉效果很好,推荐给大家。 Canvas Confetti 是一个基于 JavaScript 的特效动画库,可以在网页界面上轻松地实现五彩纸屑飞舞的庆祝场景特效。这个特效库封装了几种酷炫的特效&…...

[数据集][目标检测]智慧牧场猪只检测数据集VOC+YOLO格式16245张1类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):16245 标注数量(xml文件个数):16245 标注数量(txt文件个数):16245 标…...

GS-SLAM论文阅读笔记--LoopSplat
介绍 这篇文章看标题是解决GS-SLAM回环检测的,GS-SLAM回环检测之前文章很少,但他对于SLAM又很重要,确实值得阅读一番。而且这些作者的学校又是很厉害的。 文章目录 介绍1.背景介绍2.关键内容2.1 Gaussian Splatting SLAM2.2 Gaussian Splat…...
Mysql数据库表结构迁移PostgreSQL
1、背景: 公司本来用的数据库都是mysql,为了国产化适配兼容pg和dm。dm提供了数据迁移工具,可以直接做数据迁移,生成脚本之后在其他环境执行。但是pg貌似没有工具能直接用。navicat由于版权问题公司也用不了。pgloader使用总是有问…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...