测试面试题集锦(五)| 自动化测试与性能测试篇(附答案)

news2024/9/20 22:51:26

简介


本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的、网络搜集(完善)、工作日常讨论等,分为以下十个部分,供大家参考。如有错误的地方,欢迎指正。有更多的面试题或面试中遇到的坑,也欢迎补充分享。希望大家都能找到满意的工作,共勉之!~

自动化测试相关


包含 Selenium、Appium 和接口测试。

  1. 自动化代码中,用到了哪些设计模式?
    单例模式
    工厂模式
    PO模式
    数据驱动模式
  2. 什么是断言?
    检查一个条件,如果它为真,就不做任何事,用例通过。如果它为假,则会抛出 AssertError 并且包含错误信息。
  3. UI 自动化测试中,如何做集群?
    Selenium Grid,分布式执行用例
    Appium 使用 STF 管理多设备
    Docker+K8S 管理集群
  4. 怎么对含有验证码的功能进行自动化测试?
    万能验证码
    测试环境屏蔽验证
    其他操作不推荐
  5. 如何优化和提高 Selenium 脚本的执行速度?
    尽量使用 by_css_selector() 方法
    by_css_selector() 方法的执行速度比 by_id() 方法的更快,因为源码中 by_id() 方法会被自动转成 by_css_selector() 方法处理;
    使用等待时,尽量使用显示等待,少用 sleep(),尽量不用隐式等待;
    尽量减少不必要的操作:可以直接访问页面的,不要通过点击操作访问;
    并发执行测试用例:同时执行多条测试用例,降低用例间的耦合;
    有些页面加载时间长,可以中断加载;
  6. 接口测试能发现哪些问题?
    可以发现很多在页面上操作发现不了的 bug;
    检查系统的异常处理能力;
    检查系统的安全性、稳定性;
    前端随便变,接口测好了,后端不用变;
    可以测试并发情况,一个账号,同时(大于 2 个请求)对最后一个商品下单,或不同账号,对最后一个商品下单;
    可以修改请求参数,突破前端页面输入限制(如金额);
  7. Selenium 中隐藏元素如何定位?
    如果单纯的定位的话,隐藏元素和普通不隐藏元素定位没啥区别,用正常定位方法就行了(这个很多面试官也搞不清楚);
    元素的属性隐藏和显示,主要是 type=“hidden” 和 属性来控制的,接下来在元素属性里面让它隐藏,隐藏元素可以正常定位到,只是不能操作(定位元素和操作元素是两码事,很多初学者傻傻分不清楚),操作元素是 click,clear,send_keys 这些方法;
    JS 操作隐藏元素;
  8. 如何判断一个页面上元素是否存在?
    方法一:用 try…except…
    方法二:用 elements 定义一组元素方法,判断元素是否存在,存在返回 True,不存返回 False
    方法三:结合 WebDriverWait 和 expected_conditions 判断(推荐)
  9. 如何提高脚本的稳定性?
    不要右键复制 xpath(十万八千里那种路径,肯定不稳定),自己写相对路径,多用 id 为节点查找;
    定位没问题,第二个影响因素那就是等待了,sleep 等待尽量少用(影响执行时间);
    定位元素方法重新封装,结合 WebDriverWait 和 expected_conditions 判断元素方法,自己封装一套定位元素方法;
  10. 如何定位动态元素?
    动态元素有 2 种情况,一个是属性动态,比如 id 是动态的,定位时候,那就不要用 id 定位就是了;
    还有一种情况动态的,那就是这个元素一会在页面上方,一会在下方,飘忽不定的动态元素,定位方法也是一样,按 f12,根据元素属性定位(元素的 tag、name的步伐属性是不会变的,动的只是 class 属性和 styles 属性);
  11. 如何通过子元素定位父元素
    使用element.parent方法
  12. 平常遇到过哪些问题? ?如何解决的
    可以把平常遇到的元素定位的一些坑说下,然后说下为什么没定位到,比如动态 id、有 iframe、没加等待等因素;
  13. 一个元素明明定位到了,点击无效(也没报错),如果解决?
    使用 JS 点击,Selenium 有时候点击元素是会失效;
  14. 测试的数据你放在哪?
    对于账号密码,这种管全局的参数,可以用命令行参数,单独抽出来,写的配置文件里(如 ini);
    对于一些一次性消耗的数据,比如注册,每次注册不一样的数,可以用随机函数生成;
    对于一个接口有多组测试的参数,可以参数化,数据放 YAML,Text,JSON,Excel 都可以;
    对于可以反复使用的数据,比如订单的各种状态需要造数据的情况,可以放到数据库,每次数据初始化,用完后再清理;
    对于邮箱配置的一些参数,可以用 ini 配置文件;
    对于全部是独立的接口项目,可以用数据驱动方式,用 excel/csv 管理测试的接口数据;
    对于少量的静态数据,比如一个接口的测试数据,也就 2-3 组,可以写到 py脚本的开头,十年八年都不会变更的;
  15. 什么是数据驱动,如何参数化?
    参数化的思想是代码用例写好了后,不需要改代码,只需维护测试数据就可以了,并且根据不同的测试数据生成多个用例;
  16. 其他接口都需要登录接口的信息,怎么去让这个登录的接口只在其他接口调用一次?
    使用单例模式
    使用自定义缓存机制
    使用测试框架中的 setup 机制
    pytest 中 fixture 机制
  17. 接口产生的垃圾数据如何清理?
    造数据和数据清理,需用 python 连数据库了,做增删改查的操作测试用例前置操作,setUp 做数据准备后置操作,tearDown 做数据清理
  18. 怎么用接口案例去覆盖业务逻辑?
    考虑不同的业务场景,一个接口走过的流程是什么样的,流程的逻辑是什么样的,什么样的参数会有什么样的结果,多场景覆盖;

性能篇


1.性能测试指标包括哪些

  • 最大并发用户数,HPS(点击率)、事务响应时间、每秒事务数、每秒点击量、吞吐量、CPU 使用率、物理内存使用、网络流量使用等。

前端需主要关注的点是:

  • 响应时间:用户从客户端发出请求,并得到响应,以及展示出来的整个过程的时间。
    加载速度:通俗的理解为页面内容显示的快慢。
    流量:所消耗的网络流量。

后端需主要关注的是:

  • 响应时间:接口从请求到响应、返回的时间。
    并发用户数:同一时间点请求服务器的用户数,支持的最大并发数。
    内存占用:也就是内存开销。
    吞吐量(TPS):Transaction Per Second, 每秒事务数。在没有遇到性能瓶颈时:TPS=并发用户数*事务数/响应时间。
    错误率:失败的事务数/事务总数。
    资源使用率:CPU占用率、内存使用率、磁盘I/O、网络I/O。

从性能测试分析度量的度角来看,主要可以从如下几个大的维度来收集考察性能指标:

  • 系统性能指标、资源性能指标、稳定性指标

2.如果一个需求没有明确的性能指标,要如何开始进行性能测试?
先输出业务数据,如 pv、pu、时间段等,计算出大概的值,然后不断加压测到峰值

3.介绍 JMeter 聚合报告包括哪些内容?

  • 请求名、线程数、响应时间(50 95 99 最小 最大)错误率、吞吐量

4.如果有一个页面特别卡顿,设想一下可能的原因?

  • 后台:接口返回数据慢,查询性能等各种问题
    前端:使用 Chrome 工具调试,判断 JS 执行久或是其他问题
    网络问题

5.说一说项目中的实际测试内容

  • 根据自己项目中的经验实话实说,有没有经验很容易露馅。

6.介绍一下 JMeter 进行性能测试的过程

  • 结合自己的项目经验聊。大家也可以自行搜索。

7.介绍一下 JMeter 和 LoadRunner 的区别

  • 详细的不展开了,最重要的是相对来说 LoadRunner 的笨重、昂贵、闭源,理念和生态都落后,而 JMeter 是开源、可定制化开发,功能强大易用,并且在互联网大厂都已经有非常成熟的落地方案(主流的互联网公司基本都在使用 JMeter+ELK+Grafana+Influxdb 这套架构),可以说是进 BAT 大厂必备技能。还不会 JMeter 的同学建议抓紧补起来。
总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

Apeaksoft Video Converter Ultimate for Mac:强大的视频转换与编辑工具

Apeaksoft Video Converter Ultimate for Mac是一款专为Mac用户设计的视频转换与编辑软件,凭借其强大的功能和用户友好的界面,在视频处理领域脱颖而出。该软件不仅支持多种视频格式的转换,还内置了丰富的视频编辑功能,让用户能够轻…

海康VisionMaster使用学习笔记12-通信框架介绍

1. 通信的用途 用途: 通信是连通算法平台和外部设备的重要渠道,在算法平台中既支持外部数据的读入也支持数据的写出,当通信构建起来以后既可以把软件处理结果发送给外界,又可以通过外界发送字符来触发相机拍照或者软件运行。 2. 通信的种类…

提升工作效率的五大神器

在这个信息爆炸、节奏加速的时代,高效工作已经成为了职场人士追求的目标。如何在短时间内完成更多的工作任务,同时保持高质量的输出?答案在于合理利用工具。以下是五个能够显著提升工作效率的软件推荐,它们各自在任务管理、团队协…

【LLM大模型】大模型涌现能力及 Prompt Engineering提示词

涌现能力 GPT3是第一批拥有“涌现能力”的大语言模型,即模型未经特定任务的训练,但在适当的提示下,仍然能够解决某些特定领域的问题。 例如大语言模型可以解答数学问题、辅助进行编程、甚至是进行问答等,其实都属于模型的涌现能…

FMEA项目难落地?原因在这里

很多企业反馈到“FMEA项目难落地”其实并不是大家不想做好FMEA,目前各个企业做不好的FMEA的最关键的原因,还是大家做FMEA的方法不正确。详情如深圳天行健企业管理咨询公司下文所述: 1、 分析对象定义不清 做FMEA时,首先得弄清楚你…

Xterminal工具的安装与使用体验

Xterminal工具的安装与使用体验 一、Xterminal简介二、Xterminal核心特性三、Xterminal使用场景四、Xterminal下载地址五、Xterminal的基本使用5.1 设置仓库密码5.2 SSH连接5.3 Windows远程桌面5.4 笔记功能5.5 AI工具 六、总结 一、Xterminal简介 Xterminal是一款专为开发者设…

ubuntu虚拟机VBOX无法读取usb设备的解决办法

关闭虚拟电脑,在设置->USB设置选择你的usb版本再试试看再右下角右键选择你的设备应该就行了

OpenCV几何图像变换(3)计算透视变换矩阵函数getPerspectiveTransform()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算四对对应点之间的透视变换。 该函数计算 33 的透视变换矩阵,使得: [ t i x i ′ t i y i ′ t i ] map_matrix ⋅ …

零基础入门AI:1 token ~= 3/4 words?3分钟理解大语言模型分词

ChatGPT API 按 token 数量收费,那么1个token究竟是多少? 按Openai 的估算,1 token ~ 3/4 words,100个token大约是75个单词。 输入的文本是如何被分解为 token 的呢?在大语言模型处理文本时,分词&#xf…

记一次hivemetastore启动报错

1,启动hivemetastore后报错日志 2,排查lib下的mysql的驱动也在, 这里和mysql的驱动大小一样 3,把hive-site.xml中无关的配置都删掉,重启metastore还是报错 4,最后排查,这个节点rpm部署了hive…

Adobe After Effects的插件--------CC Cylinder

CC Cylinder是柱体插件。它是AE内置的3D插件。 使用条件 该插件的作用是将2D图层转换为3D的柱体。所以使用该插件时要确保源图层为2D的。 我们以一张图片素材为例: 给图片图层添加CC Cylinder效果控件,然后新建一个摄像机(利用摄像机旋转、平移、推拉工具,方便在各个角度…

解锁黑科技!百度AppBuilder助你秒变开发者,轻松实现文心一言

在数字化浪潮席卷全球的今天,人工智能(AI)和大模型技术正以前所未有的速度改变着我们的世界。从自然语言处理到图像识别,从智能推荐到自动化决策,大模型以其强大的数据处理能力和学习能力,正成为推动科技创…

数字化办公OA系统是如何运作的——办公物品领用功能拆解

数字化办公 OA 系统究竟是如何运作的呢?它的核心功能又是如何发挥作用的呢?这篇就以行政 OA 系统为例,从产品视角来深入探讨它是如何运作的。 简道云行政OA管理系统模板,可以直接查看和使用:https://www.jiandaoyun.co…

地域美食与白酒的情缘,品味文化交融之美

在广袤无垠的华夏大地上,地域美食与白酒各自承载着丰富的文化内涵和历史底蕴。当这两者相遇,便是一场跨越时空的文化交融,它们共同编织出一幅幅绚丽多彩的味蕾画卷。今天,就让我们一起探寻地域美食与豪迈白酒(HOMANLIS…

溯源“最强大脑“:解密智能微气候调控中的算法革命

智能微气候调控是设施农业发展的新引擎,而推动这一引擎不断向前的动力,正是源源不断涌现的前沿算法。这些"最强大脑"以其卓越的感知、决策和优化能力,为设施农业插上腾飞的翅膀。本文将以"剥洋葱"的方式,层层剖析智能微气候调控背后的算法原理、技术架构和…

【大模型微调训练与实操】微调 Llama 3 并在本地使用

目标:根据医患对话数据集对 Llama 3 进行微调,创建一个专门针对医疗对话的模型。在合并、转换和量化模型后,它将可以通过 Jan 应用程序供本地私人使用。 在本教程中,我们将学习如何在医学数据集上微调 Llama 3。我们还将通过 Ja…

后端Java秋招面试中的自我介绍需要说什么?

本文主要面向校招/实习面试中求职后端开发岗位的同学,其他岗位/社招的同学也可以参考,道理都是相通的 1 背景 1.1为什么要认真准备自我介绍? 1. 必要性:在求职面试中,一般来说同学和面试官打过招呼之后第一项就是自…

软件测试学习笔记丨APP通用测试方法

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/31923 一,App项目测试 1,测试流程 需求分析测试计划编写测试用例设计测试用例评审用例执行回归测试非功能测试走查验收(UI、产品)测试总结报告…

将标注文件统一命名

前言 遇到一个问题,对方给的标注文件都是有包括中文以及特殊字符的命名,这就给数据预处理造成了极大不便,因为深度学习训练时使用的有些库是不支持读除了ascii码以外的字符的。所以需要将这些文件名重新对应命名一下。 代码 这是关键点的标…

AI架构系列:去其形而留其意

这个专栏主要关注围绕着AI运用于实际的业务场景所需的系统架构设计。整体基于云原生技术,结合开源领域的LLMOps或者MLOps技术,充分运用低代码构建高性能、高效率和敏捷响应的AI中台。该专栏需要具备一定的计算机基础。 最近很多的咨询都在问我相同的问题…