当前位置:   article > 正文

疯狂收割offer,软件测试-自动化测试面试题汇总(新版)

疯狂收割offer,软件测试-自动化测试面试题汇总(新版)


前言

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

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

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

面试题:请举例说明一下,你在编写自动化脚本过程中碰到了那些异常?

NoSuchElementException 没有如此元素异常
TimeoutException 超时异常
NosuchFrameException 没有如此框架异常

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

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

1)项目组做自动化的可行性分析自动化率到i什么程度
项目周期比较长 一年以上,需求不会频繁变更,自动化脚本能够持续反复的使用

2)自动化工具selenium robotframework调研以及demo演示
3)由leader搭建自动化测试框架,并且在项目中逐步的实施,发现框架的问题并改善
4)把自动化流程化,框架出使用文档以及规范文档
5)生成定制的报告 并继续完善框架

面试题:接口自动化如何设计测试用例?一个接口你会设计多少个测试用例?(20-30)

考虑:业务逻辑,入参,通过等价类边界值场景法来设计

设计:正例 (两个)请求方式 get/post
反例:
鉴权反例:token,key:为空,错误,过期
参数反例:必须项检查,长度规则,类型规则,日期
错误码覆盖
其他的关注点:分页,图片格式,大小

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

postman和jmeter如何处理接口关联?
json提取器 正则表达式 cookie提取器

通过一个单独的extract.yaml文件来保存所有的关联字段,中间提取的变量这个变量在所有的测试用例之前清空

清空通过
unittest:setup_class
pytest:conftest+fixtrue

在测试用例的yaml里面通过一级关键字extract提取 提取支持json提取的正则表达式提取

在其他的接口的yaml文件里面通过{{}}提取或者${}的提取

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

我在xx项目搭建的接口自动化测试框架所使用的核心技术:
request+pytest+allure+parametrize+jenkins
包装:basepage基础封装,testcase封装
requests二次封装,日志收集模块 yaml配置文件封装

封装的这个项目规则:
YAML格式用例的约定
必须包含一级关键字:name request validate

在request关键字下必须包括:method,url,data,如data没有的话那么输入默认值{}

提取变量使用一级关键字extract。支持json提取和正则提取(.+?)和(.*?)取值使用{}

可以使用热加载的方式调用debug_talk.py中debugTalk类里面的方法 通过${}调用方法

支持equals、contains两种断言
使用parameters做csv文件的数据驱动,通过$csv(appid)这种格式取值

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

技术决定面试决定薪资

前提:熟练pyhton包括装饰器反射等

接口测试理论
精通基于工具类的接口测试:postman、jmeter,fiddler、charles

cookie,token session
httprunner是目前唯一成熟的基于yaml设计测试用例的接口自动化框架 简历接口测试框架的设计思想
unittest/pytest管理用例和报告定制
requests二次封装
接口自动化测试框架的封装

面试题:接口测试cookie session token的区别

1、存放及使用:

1)Cookie 数据存放在客户的浏览器(客户端)上; Cookie 是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。

2)Session 数据放在服务器上;用户第一次请求服务器的时候,服务器根据用户提交的相关信息,创建对应的 Session,请求返回时将此 Session 的唯一标识信息 SessionID 返回给浏览器,浏览器接收到服务器返回的 SessionID 信息后,会将此信息存入到 Cookie 中。

3)Token 数据存放在客户端,是接口测试时的鉴权码,一般情况下登录后才可以获取到 Token,然后在每次请求接口时需要带上 Token 参数。

2、安全及性能

1)Cookie 不是很安全,其他人是可以分析存放在本地的 Cookie 并进行 Cookie 欺骗;Session 更安全,考虑到安全应当使用 Session,在一定时间内保存在服务器上。可以将登录等重要信息存放为 Session;其他信息需要保存,可以放在 Cookie。

2)当访问增多,会比较影响服务器的性能,考虑到减轻服务器压力,应当适时选择使用 Cookie。

3)Token 安全性比 Session 好,因为每一个请求都有签名还能防止监听和重放攻击,而 Session 就必须依赖链路层来保障通讯安全了。

token一般通过appid和secret:密钥l来获取

面试题:接口测试常见的bug

特殊值处理不当 导致程序异常退出会崩溃(快递信息用户未填写提交)

类型边界溢出 导致数据读取和写入不一致(列表查询 查的值与实际的条数不符)

取值边界值外没有返回正确的一个错误信息

权限未处理 可以访问其他的用户信息(报表导出需要角色权限 没处理所有人都可以看)

逻辑校验不完善可以利用漏洞获取非正当的利益(现金账户流入流出冻结解冻)

状态处理不当导致逻辑出现错误(订单状态 未支付 待支付 已付款 取消支付 待退款 已退款 已取消)

数组类型item个数为0或者item重复时程序异常退出

面试技巧

1、多说说到点子上
比如我自己做了一套框架是基于什么东西实现的可以做到什么效果可以解决什么问题再推行过程中可以做到什么优化结合实际需要做一下变动改动

2、提前了解公司
不同薪资面试问题

入行
软件测试基础:测试流程 测试管理工具(jira和禅道)
测试工具:抓包 Postman jmeter
测试综合能力:数据库 网络协议 linux
python自动化:Http网络协议的接口测试 UI自动化 总结就是线性代码基本使用

一年
测试基础
接口UI自动化:专门挑一个领域的自动化内容来进行沟通,链路接口测试如何实现(测试数据传递 指纹数据的传递 测试用例的设计)数据驱动概念 接口鉴权机制概念 UnitTest/Pytest概念 对于测试框架的设计要有基本的概念

性能测试:做性能场景设计 做脚本的录制和增强 可以简单监控系统的性能数据指标

三年
测试基础
独立的测试框架和实现能力:包含UI和接口两端的自动化测试框架 结合企业的实际业务需求以及实际的团队使用人群 来实现部分定制化功能业务

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只要心怀梦想,脚踏实地,坚持不懈,每一次的奋斗都是成长,让激情点燃前行的路途,绽放辉煌人生。

拥有梦想是奋斗的起点,坚持不懈是奋斗的过程,成功终将属于每一位勇敢追梦的人,让我们一起努力,创造精彩未来。

只有不断超越自我,敢于冒险尝试,才能实现自己的价值与意义,让我们勇往直前,迎接人生的挑战与机遇。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/204206
推荐阅读
相关标签
  

闽ICP备14008679号