百分百拿捏offer的自动化测试面试题全套教程

news2024/12/23 8:09:43

最近很多咨询我,有没有软件测试方面的面试题,尤其是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 左右、接口测试用例执行的话,需要的时间是毫秒级的

接口测试工具

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 去

输入

总结:希望这些面试题,能帮助到正在找工作的你,还有更多软件测试学习资料,私信【资料】就获得免费的学习资料啦。

 

总结:
现阶段很多人都在说软件测试太内卷了,工作太难找了,竞争太激烈了。那么如何在这样的现状下使得自己更具有竞争力呢?笔者认为大家需要迅速学习软件测试的硬技能,提升自己的业务能力,早日摆脱初中级测试的Title,虽然测试人员众多,但是高级的软件测试人员还是很稀缺,有很多人挂着高级测试的头衔却还在干着初中级测试的活。在掌握这些硬技能的同时,软技能的培养同样重要,沟通能力、自主学习能力越来越被企业看重。

如果不想被这个时代淘汰,就要做好持续学习的准备。下方给大家准备了全套的软件测试,自动化测试全套教程。

【需要的可以点击下方官方推广小卡片扫码备注000免费领取】

 


————————————————
版权声明:本文为CSDN博主「测试架构师北凡」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/csdnchengxi/article/details/128835200

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/195011.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VUE3 指令 插槽

指令 指令是 Vue 模板语法里的特殊标记,在使用上和 HTML 的 data-* 属性十分相似,统一以 v- 开头( e.g. v-html )。 它以简单的方式实现了常用的 JavaScript 表达式功能,当表达式的值改变的时候,响应式地…

1x1卷积、Inception网络

目录1.1x1卷积(1x1 convolution)又称网络中的网络(network in network)池化层只能压缩图像的宽和高,1x1卷积能压缩通道数量,减少计算成本。如上图,输入维度的通道数为192,用32个1x1x192的filters,就能将输出的通道数压…

java基础—面试题一

文章目录1.和equals区别是什么&#xff1f;2.Java中的 <<、>>、>>> 是什么3.if-else-if-else与switch的区别4.while和do-while的区别5.switch 是否能作用在 byte 上&#xff0c;是否能作用在 long 上&#xff0c;是否能作用在String上6.&和&&…

大数据技术架构(组件)16——Hive:内置UDTF函数

1.4.11、内置UDTF函数1.4.11.1、explodeselect explode(array(100,200,300));Array<int> myCol[100,200,300][400,500,600]得到的结果如下&#xff1a;(int) myNewCol1002003004005006001.4.11.2、posexplodeselect posexplode(array(A,B,C));1.4.11.3、parse_url_tuples…

2023云原生安全值得关注的3个方向

如果说过去几年教会了我们什么的话&#xff0c;那就是云原生和开源环境中安全的重要性。 Log4j 等漏洞产生的重大影响&#xff0c;在无数的行业中浮现&#xff0c;对于云原生环境中的其他安全问题也越来越受到重视。 组织不再质疑是否要迁移到云端&#xff0c;而是在寻找最快、…

centos下安装docker 并通过docker安装gitlab

一:安装docker1、若之前安过docker&#xff0c;可以先卸载yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine \docker-ce2、更新yum…

软件测试基础(四) 之 软件测试的覆盖率

一、什么是软件测试的覆盖率&#xff1f;软件测试覆盖率是软件测试技术有效性的一个度量手段&#xff0c;用来度量测试完整性。意思概括的说&#xff0c;软件测试的工作中会有非常非常多的item&#xff08;任务&#xff09;&#xff0c;执行过的任务和总任务数的一个比值&#…

尚医通 (二)项目搭建

目录一、工程结构介绍1、工程结构2、模块说明二、创建父工程1、创建sprigboot工程yygh_parent2、删除 src 目录3、配置 pom.xml4、在pom.xml中添加依赖的版本三、搭建model模块1、在父工程yygh_parent下面创建模块model2、添加项目需要的依赖3、复制项目实体类和VO类四、搭建se…

require和important区别

1.require是赋值过程&#xff0c;就是把一个值赋值给另一个&#xff0c;important是对这个值的引用 2 . require 是赋值过程并且是运行时才执行&#xff0c;也就是同步加载&#xff0c;import 是解构过程并且是编译时执行&#xff0c;理解为异步加载 3.require 的性能相对于 im…

Linux部署达梦数据库超详细教程

陈老老老板&#x1f9b8;&#x1f468;‍&#x1f4bb;本文专栏&#xff1a;国产数据库-达梦数据库&#xff08;主要讲一些达梦数据库相关的内容&#xff09;&#x1f468;‍&#x1f4bb;本文简述&#xff1a;本文讲一下达梦数据库的下载与安装教程&#xff08;Linux版&#x…

百度网盘秒传链接生成及提取方法

百度网盘秒传链接生成及提取方法 1.认识秒传链接 首先&#xff0c;我们认识一下秒传链接的格式&#xff1a; 秒传链接是由标准提取码文件名组成。例如下面的格式&#xff1a; fd00338387f50ee5919eb3df4cfce6e3#5048587008#/影视/电影/救火奶爸.mp4 百度网盘秒传链接的提取主…

FISSURE:一款功能强大的RF和逆向工程框架

关于FISSURE FISSURE是一款功能强大的RF和逆向工程框架&#xff0c;该工具适用于不同技能水平的安全研究人员&#xff0c;并提供了信号检测、信号分类、协议发现、渗透测试、IQ操作、漏洞分析、自动化和AI/机器学习等功能。该框架旨在促进软件模块、无线电、协议、信号数据、脚…

2023年怎么开通一个抖音小店?店铺开通后做什么?开店指南!

大家好&#xff0c;我是王路飞。 2023年都已经过去一个月了&#xff0c;你开通抖音小店了吗&#xff1f; 作为目前最受欢迎的创业和副业项目&#xff0c;开通抖音小店的商家数量与日俱增&#xff0c;都是为了蹭一下抖音流量的红利&#xff0c;毕竟直播带货如今正处在风口。 …

50条必背JAVA知识点(三)

31.面向对象中两个重要的概念&#xff1a;类&#xff1a;对一类事物的描述&#xff0c;是抽象的、概念上的定义对象&#xff1a;是实际存在的该类事物的每个个体&#xff0c;因而也称为实例(instance) 32.虚拟机栈&#xff0c;即为平时提到的栈结构。局部变量存储在栈结构中&a…

专利的申请和驳回

说明书和权利要求的区别 说明书里面会写这个新方案的具体内容&#xff0c;实施方案&#xff0c;解释说明等&#xff0c;权利要求书的话&#xff0c;就是对这些具体的内容进行概括 说明书应当补充说明该发明相比有技术的优势 就投屏举例: 到底怎么写 三篇 阿里 楼x投屏方法及装…

人工智能服务哪家强?IDC评估报告看过来

如果您还不知道如何选择人工智能AI服务供应商&#xff0c;那么IDC的这份评估报告也许可以派上用场。如何选择AI软件工具和平台随着科技的不断发展&#xff0c;人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;技术在近年来取得了长足的进步。从语音…

简介JWT

简介JWT http协议无状态的&#xff0c;所以需要sessionId或token的鉴权机制&#xff0c;jwt的token认证机制不需要在服务端再保留用户的认证信息或会话信息。这就意味着基于jwt认证机制的应用程序不需要去考虑用户在哪一台服务器登录了&#xff0c;这就为应用的扩展提供了便利&…

Python函数和 lambda表达式

Python提供了许多内置函数&#xff0c;比如&#xff1a;print()&#xff0c;len()等。它还支持用户自定义函数。 一、Python函数 1、函数定义使用 &#xff08;1&#xff09;函数定义 Python 允许我们将常用的代码以固定的格式封装&#xff08;包装&#xff09;成一个独立的…

一刷代码随想录——字符串

1 力扣344.反转字符串题目描述&#xff1a;编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。class Solution { public:v…

数据库原理与应用-关系数据库

关系数据结构及形式化定义关系操作关系的完整性关系代数关系演算