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

  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。
从性能测试分析度量的度角来看,主要可以从如下几个大的维度来收集考察性能指标:
系统性能指标、资源性能指标、稳定性指标

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

  2. 介绍 JMeter 聚合报告包括哪些内容?
    请求名、线程数、响应时间(50 95 99 最小 最大)错误率、吞吐量

  3. 如果有一个页面特别卡顿,设想一下可能的原因?
    后台:接口返回数据慢,查询性能等各种问题
    前端:使用 Chrome 工具调试,判断 JS 执行久或是其他问题

  4. 说一说项目中的实际测试内容
    根据自己项目中的经验实话实说,有没有经验很容易露馅。

  5. 介绍一下 JMeter 进行性能测试的过程
    结合自己的项目经验聊。大家也可以自行搜索。

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

资源分享

下面是小编辛苦整理的资料

微信公众号关注【程序媛木子】即可领取免费资源库。

如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力,也大家可以进群交流(644956177),里面有各种软件测试资源和技术交流。

测试面试题,自动化测试与性能测试篇(附答案)相关推荐

  1. 想进BAT?这些测试面试题助你一臂之力(附答案)

    1 软性热身题 这种题目,考的就是你的软性能力,比如表达能力,理解能力,协调能力,一个词概括就是套路.这类题目会在面试开始热身的时候,问一道两题,不会多,但是如果你能回答的有条不紊,清晰达意,那么就会 ...

  2. php面试题汇总一(基础篇附答案)

    一份不错的php面试题,附答案,有准备换工作的同学可以参考一下. 1:使用五种以上方式获取一个文件的扩展名 要求:dir/upload.image.jpg,找出 .jpg 或者 jpg , 必须使用P ...

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

    简介:本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的.网络搜集(完善).工作日常讨论等,分为以下十个部分,供大家参考.如有错误的地方,欢迎指正.有更多的面试题或面试中遇到 ...

  4. 文治者必有武备不然长大了挨欺负_2017届高考语文全国卷文言文专题阅读15篇(附答案)...

    2017届高考语文全国卷文言文专题阅读15篇(附答案) 1.阅读下面这篇文言文,完成问题. 高永能,字君举,世为绥州人.初,伯祖文呸举州来归,即拜团练使,已而弃之北迁,其祖文玉独留居延州,至永能始家青 ...

  5. 字节跳动抖音研发---测试开发三面---面经(附答案)【接口/自动化/web】测试面试题

    目录 一:前言 [文章的末尾给大家留下了大量的福利哦.] 一.为什么连接的时候是三次握手,关闭的时候却是四次握手? 二.TCP 连接为 什么 C lient 会在发送出 ACK 之后进入到 TIME_ ...

  6. 年终盘点 | 2019年Java面试题汇总篇(附答案)

    作者 | 老王 来源 | Java中文社群「微信公众号」 在这岁月更替辞旧迎新的时刻,老王盘点了一下自己 2019 年发布的所有文章,意外的发现关于「Java面试」的主题文章,竟然发布了 52 篇,几 ...

  7. 【吐血整理】年度盘点 | 2019年Java面试题汇总篇——附答案

    在这岁月更替辞旧迎新的时刻,老王盘点了一下自己 2019 年发布的所有文章,意外的发现关于「Java面试」的主题文章,竟然发布了 52 篇,几乎是全年每周一篇面试文章的节奏,当然其中有不少的面试题来源 ...

  8. css 动态rem_【面试题】CSS知识点整理(附答案)

    目录 伪类和伪元素 实现固定宽高比(width: height = 4: 3)的div,怎么设置 CSS选择器 CSS解析规则 flex: 1 完整写法 display: none和 visibili ...

  9. .net 面试题系列文章二(附答案)

    .net 面试题系列文章二(附答案) 内容摘要:本文是.net 面试题系列的第二篇,该系列文章是对网上所有.net面试题的收重新集整理後的系列文章,囊括了c#面试题,vb.net面试题,asp.net ...

  10. 计算机office基础知识的试题,office计算机基础知识(附答案).doc

    office计算机基础知识(附答案).doc 试题训练1)根据汉字国标GB2312-80的规定,二级次常用汉字个数是? ? A) 3000个? ? B)7445个? ? C)3008个? ? D)37 ...

最新文章

  1. 魅族手机使用应用沙盒一键修改位置数据
  2. [BZOJ2144]国家集训队 跳跳棋
  3. JQuery 总结(3) jQuery 各种事件
  4. java 简单json和对象相互转换
  5. 【转】!C#中的Stream相关
  6. 简单英文题 16 Maximum Sum Not Exceeding K(python)
  7. S5PV210裸机之时钟
  8. 2.1.4 Python单例模式
  9. 拒绝假货!LVMH与普拉达、卡地亚联手推出区块链平台AURA
  10. MWeb Pro for Mac(静态博客生成软件)
  11. 前端面试题总汇、常考、笔试题等
  12. Unity3D 游戏摄像机的环绕与拉近
  13. Java —— 自定义JSR303校验
  14. 【DP】LeetCode91 解码方法 【java】
  15. tensorflow中tf.nn.xw_plus_b
  16. Elasticsearch 压测方案之 es rally 简介
  17. 【linux实操篇之磁盘分区】为你的虚拟机添加一块硬盘
  18. 【docker专栏5】详解docker镜像管理命令
  19. 初识react(13)—— 使用 moment 来获取日期
  20. Linux驱动|rtc-hym8563移植笔记

热门文章

  1. Git常见相关知识与命令
  2. Linux替代Windows系统软件比拼
  3. win7下安装usb转串口不成功解决方法
  4. 很实用的,GridView中使用DataFormatString属性格式化内容
  5. 10-4 用select进行调度
  6. RAII(Resource Acquisition Is Initialization:资源获取即初始化)
  7. python comprehension_Python从题目中学习:List comprehension
  8. 机器视觉光源亮度应如何选择
  9. 125万像素智能相机收费站解决方案
  10. 对软件研发项目管理的深入探讨