当前位置: 首页 > news >正文

【软件测试面试】全网最全,自动化测试面试题总结大全(付答案)

前言

面试题1:你有没有做过自动化测试?

答:
我在xx项目中实施了web自动化测试,我们项目中搭建自动化测试框架技术:python+selenium+pytest/unittest+ddt+jenkins,然后用的POM分层的模式(面向对象思想),数据驱动使用的是excel+ddt的驱动模式,我在这个自动化测试实施的项目里所负责的那些模块那些测试用例的自动化代码编写

我在xx项目中实施了接口自动测试平台搭建,技术栈:python+django+pytest+vue+ddt+jenkins

面试题2:你们是如何在公司里面实施自动化测试的?

1、公司目前展开自动化,希望你能够承担自动化的实施过程
2、公司已经在开展自动化了,想借鉴一下

1)项目组做自动化的可行性分析自动化率到什么程度
项目周期比较长 一年以上,需求不会频繁变更,自动化脚本能够持续反复的使用
2)自动化工具selenium robotframework调研以及demo演示
3)由leader搭建自动化测试框架,并且在项目中逐步的实施,发现框架的问题并改善
4)把自动化流程化,框架出使用文档以及规范文档
5)生成定制的报告 并继续完善框架

面试题3:接口自动化测试框架中接口关联你们是怎么处理的?

postman和jmeter如何处理接口关联?

答:
json提取器、正则表达式、cookie提取器

1、通过一个单独的extract.yaml文件来保存所有的关联字段,中间提取的变量这个变量在所有的测试用例之前清空
清空通过
unittest:setup_class
pytest:conftest+fixtrue
2、在测试用例的yaml里面通过一级关键字extract提取 提取支持json提取的正则表达式提取
3、在其他的接口的yaml文件里面通过{{}}提取或者${}的提取

面试题4:你有从零开始独立搭建过自动化接口自动化测试框架?

答:
我在xx项目搭建的接口自动化测试框架所使用的核心技术:
request+pytest+allure+parametrize+jenkins
封装:basepage基础封装,testcase封装…

requests二次封装,日志收集模块 yaml配置文件封装

封装的这个项目规则:
YAML格式用例的约定
1、必须包含一级关键字:name request validate
2、在request关键字下必须包括:method,url,data,如data没有的话那么输入默认值{}
3、提取变量使用一级关键字extract。支持json提取和正则提取(.+?)和(.*?)取值使用{}
4、可以使用热加载的方式调用debug_talk.py中debugTalk类里面的方法 通过调用方法 5 、支持 e q u a l s 、 c o n t a i n s 两种断言 6 、使用 p a r a m e t e r s 做 c s v 文件的数据驱动,通过 {}调用方法 5、支持equals、contains两种断言 6、使用parameters做csv文件的数据驱动,通过调用方法5、支持equals、contains两种断言6、使用parameters做csv文件的数据驱动,通过csv(appid)这种格式取值

web和接口自动化
更细:
web:frame怎么处理,下拉框怎么处理,多个页面 ,弹窗操作,鼠标操作(悬停),滚动条,键盘 你怎么处理
接口:接口加密 接口签名

面试题5:结合一个具体的业务场景问你如何测试?

例如:双十一优惠券当天可用,满100减50,特价商品不能用?

分析需求字面测试点
1、双十一优惠券当天可用(边界值)
2、满100减50(边界值)
3、特价商品不能用

其他场景
1、UI检查:优惠券金额。不可以用优惠券置灰,有效时间显示
2、优惠券状态:已经领取未使用,已领取已使用,已使用,使用后退款
3、检查是否能够自动化选择优惠券,并且是否和其他优惠券叠加使用,智能选择最大优惠券,以及优惠券选择切换
4、使用优惠券购买商品退货场景 退货金额以及优惠券是否退还
5、优惠券是否能重复领取等等

面试题6:如何区分前后端的bug?

抓包看前端传参很后端返回数据对比
也可以通过查看后台日志分析

先排除因为测试环境问题或者误操作这种因素然后先按照同样的步骤重现一遍,如果不能重现,直接把之前的那个日志截图给开发。

如果重现,可以利用抓包工具去看请求和响应数据,如果请求错误,就是前端的问题,如果响应错误,就是后端的问题

还可以看状态码,一般4开头的,就是客户端问题,比如,如果是401,就是未授权,403就是被禁止访问,404就是页面未找到。5开头的就是服务端的问题,比如500就是内部服务器错误

面试题7:分布式测试架构与用例并发如何实现?

但凡关联到分布式测试架构的体系,一般而言都是基于UI自动化SeleniumGrid是一套特别好用的分布式架构部署服务

目前主流的分布式测试框架部署是基于主从节点形态来部署。配置一个网关+N个子节点的形态来实现分布式架构

用例并发推荐使用多线程模式来实现
Jenkins自带有分布式部署模式 也是基于主从节点来实现

面试题8:如何实现POM自动化测试架构?

如何解决多人团队下的自动化工作的开展:架构
定义测试框架结构:
基类、页面对象类、测试用例、测试数据、配置、功能…

面试题9:框架是如何设计的?框架的设计方法?

技术:
关键字驱动+数据驱动

将常用的操作行为进行二次封装,生成一个自定义的关键字类,把所有的封装函数放在类里面,便于后续进行调用

优先考虑Excel数据驱动,结合Python发射机制+openpyxl模块来实现excel数据内容的读取与执行,在定义规范化的Excel文件的测试用例格式

再结合日志信息配置、框架的测试环境配置、服务器的配置、数据文件的读取路径配置、公共参数配置等进行细化的配置模块的研发管理

再优化考虑基于Unittest/Pytest实现用例管理、定义数据读取的驱动参数

集成HTMLTestRunner或Allure测试报告,继承邮件,集成Jenkins实现自动化测试构建

分布式测试框架部署的技术实现+用例并发实现

POM测试框架实现

接口测试常见的bug

1、特殊值处理不当 导致程序异常退出会崩溃(快递信息用户未填写提交)
2、类型边界溢出 导致数据读取和写入不一致(列表查询 查的值与实际的条数不符)
3、取值边界值外没有返回正确的一个错误信息
4、权限未处理 可以访问其他的用户信息(报表导出需要角色权限 没处理所有人都可以看)
5、逻辑校验不完善可以利用漏洞获取非正当的利益(现金账户流入流出冻结解冻)
6、状态处理不当导致逻辑出现错误(订单状态 未支付 待支付 已付款 取消支付 待退款 已退款 已取消)
7、数组类型item个数为0或者item重复时程序异常退出

后续继续更新

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

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

软件测试面试文档

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

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

http://www.dtcms.com/a/352557.html

相关文章:

  • 告别出差!蓝蜂物联网网关让PLC程序远程修改零延迟
  • 二、JVM 入门 —— (四)堆以及 GC
  • 渗透测试术语大全(超详细)
  • C++ STL 顶层设计与安全:迭代器、失效与线程安全
  • 【C++游记】栈vs队列vs优先级队列
  • 算法编程实例-快乐学习
  • 随机森林实战:在鸢尾花数据集上与决策树和逻辑斯蒂回归进行对比
  • AI安全监控与人才需求的时间悖论(对AI安全模型、AI安全人才需求的一些思考)
  • AIDL和HIDL的AudioHal对比
  • Maya绑定基础: FK 和 IK 介绍和使用
  • lottie动画动态更改切图添加事件
  • 五自由度磁悬浮轴承:精准狙击转子质量不平衡引发的同频振动
  • pycharm 远程连接服务器报错
  • NeRAF、ImVid论文解读
  • 2007-2022年上市公司企业关联交易数据
  • 面向对象爬虫架构设计:构建高复用、抗封禁的爬虫系统​
  • 工业数据消费迎来“抖音式”革命:TDengine IDMP 让数据自己开口说话
  • 利用 Java 爬虫按关键字搜索 1688 商品详情 API 返回值说明实战指南
  • 如何在360极速浏览器中调出底部状态栏
  • Wireshark和USRP捕获同一信号波形差异原因
  • MQ 最终一致性实现跨库转账
  • ArcGIS学习-11 实战-商场选址
  • 【Vue3】Cesium实现雨雪效果
  • onnx入门教程(五)——实现 PyTorch-ONNX 精度对齐工具
  • 子串:和为K的子数组
  • 高并发内存池(7)- CentralCache的核心设计
  • 如何对springboot mapper 编写单元测试
  • MATLAB Figure画布中绘制表格详解
  • Cortex-M 的Thumb指令集?
  • k8s pod 启动失败 Failed to create pod sandbox