自动化测试是现代软件开发中不可或缺的一环。它通过使用自动化工具和脚本来执行测试任务,提高测试效率和准确性。相比于手动测试,自动化测试可以快速执行大量的测试用例,并在每次代码更改后进行回归测试,确保软件质量。自动化测试还可以减少人为错误的风险,并提供即时的测试结果和报告。
在自动化测试中,我们可以使用各种测试框架和工具来编写和执行测试,如Selenium、JUnit、pytest等。这些工具提供了丰富的功能,包括模拟用户行为、页面元素定位、断言验证等,以帮助我们构建可靠和高效的自动化测试脚本。
通过自动化测试,我们可以不断地运行测试用例,提早发现潜在的缺陷,并确保软件的稳定性和可靠性。同时,自动化测试也为团队提供了更多的时间和资源,来关注其他重要的软件开发任务。
综上所述,自动化测试在提高测试效率、准确性和软件质量方面发挥着重要作用。它是现代软件开发过程中的关键环节,为我们提供了可靠的测试结果和持续的质量保证。我们一起来看看常见的自动化面试题
01/你有没有做过自动化测试?
-
我在xx项目中实施了web自动化测试,我们项目中搭建自动化测试框架技术:python+selenium+unittest/Pytest+ddt+jenkins,然后用的POM分层的模式(面向对象思想),数据驱动使用的是excel+ddt的驱动模式,我在这个自动化测试实施的项目里所负责的那些模块那些测试用例的自动化代码编写
-
我在xx项目中实施了接口自动测试平台搭建,技术栈:python+django+unittest+ddt+jenkins
02/你在编写自动化脚本过程中碰到了那些异常?
NoSuchElementException 没有如此元素异常 TimeoutException 超时异常 NosuchFrameException 没有如此框架异常
03/你们公司是如何在公司里面实施自动化测试的?
-
公司目前展开自动化,希望你能够承担自动化的实施过程 公司已经在开展自动化了,想借鉴一下
-
1. 项目组做自动化的可行性分析自动化率到i什么程度 项目周期比较长 一年以上,需求不会频繁变更,自动化脚本能够持续反复的使用
-
2. 自动化工具selenium robotframework调研以及demo演示 3)由leader搭建自动化测试框架,并且在项目中逐步的实施,发现框架的问题并改善 4)把自动化流程化,框架出使用文档以及规范文档 5)生成定制的报告 并继续完善框架
04/接口自动化如何设计测试用例?一个接口你会设计多少个测试用例?
-
考虑:业务逻辑,入参,通过等价类边界值场景法来设计
-
设计:正例 (两个)请求方式 get/post 反例: 鉴权反例:token,key:为空,错误,过期 参数反例:必须项检查,长度规则,类型规则,日期 错误码覆盖 其他的关注点:分页,图片格式,大小
05/接口自动化测试框架中接口关联你们是怎么处理的?
-
postman和jmeter如何处理接口关联?json提取器 正则表达式 cookie提取器
-
通过一个单独的extract.yaml文件来保存所有的关联字段,中间提取的变量这个变量在所有的测试用例之前清空
-
清空通过 unittest:setup_class pytest:conftest+fixtrue
-
在测试用例的yaml里面通过一级关键字extract提取 提取支持json提取的正则表达式提取
-
在其他的接口的yaml文件里面通过{{}}提取或者${}的提取
06/你有从零开始独立搭建过自动化接口自动化测试框架?
-
我在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二次封装 接口自动化测试框架的封装
07/接口测试cookie session token的区别
-
一、存放及使用:
-
1. Cookie 数据存放在客户的浏览器(客户端)上;Cookie 是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。
-
2. Session 数据放在服务器上;用户第一次请求服务器的时候,服务器根据用户提交的相关信息,创建对应的 Session,请求返回时将此 Session 的唯一标识信息 SessionID 返回给浏览器,浏览器接收到服务器返回的 SessionID 信息后,会将此信息存入到 Cookie 中。
-
3. Token 数据存放在客户端,是接口测试时的鉴权码,一般情况下登录后才可以获取到 Token,然后在每次请求接口时需要带上 Token 参数。
-
二、安全及性能
-
1. Cookie 不是很安全,其他人是可以分析存放在本地的 Cookie 并进行 Cookie 欺骗;Session 更安全,考虑到安全应当使用 Session,在一定时间内保存在服务器上。可以将登录等重要信息存放为 Session;其他信息需要保存,可以放在 Cookie。
-
2. 当访问增多,会比较影响服务器的性能,考虑到减轻服务器压力,应当适时选择使用 Cookie。
-
3. Token 安全性比 Session 好,因为每一个请求都有签名还能防止监听和重放攻击,而 Session 就必须依赖链路层来保障通讯安全了。
-
token一般通过appid和secret:密钥l来获取
08/接口测试常见的bug
-
特殊值处理不当 导致程序异常退出会崩溃(快递信息用户未填写提交)
-
类型边界溢出 导致数据读取和写入不一致(列表查询 查的值与实际的条数不符)
-
取值边界值外没有返回正确的一个错误信息
-
权限未处理 可以访问其他的用户信息(报表导出需要角色权限 没处理所有人都可以看)
-
逻辑校验不完善可以利用漏洞获取非正当的利益(现金账户流入流出冻结解冻)
-
状态处理不当导致逻辑出现错误(订单状态 未支付 待支付 已付款 取消支付 待退款 已退款 已取消)
-
数组类型item个数为0或者item重复时程序异常退出
在自动化测试面试中,以下是一些经验总结:
首先,准备充分。在面试前,熟悉自动化测试的基本概念、工具和框架,并了解常见的自动化测试场景和挑战。还要复习常见的面试问题,并准备好相关的答案。
其次,突出技术能力。在面试中,重点展示自己的编码和脚本开发能力,包括熟练使用测试框架和工具、掌握至少一门编程语言、了解基本的软件开发原理等。同时,展示对测试自动化的理解和实践经验。
第三,强调测试思维和质量意识。除了技术能力,面试官也会关注你对测试的理解和测试策略的制定能力。强调你的测试思维、测试用例设计和缺陷分析能力,以及对软件质量的重视。
此外,展示团队合作和沟通能力。自动化测试通常需要与开发人员、产品经理和其他测试人员合作。在面试中,强调你的团队合作和沟通技巧,以及与不同角色进行有效沟通和协作的能力。
最后,提问并展示兴趣。在面试结束时,提问面试官关于公司的项目、团队和自动化测试策略等方面的问题,展示你对职位和公司的兴趣。
总之,自动化测试面试需要准备技术知识、测试思维和沟通技巧。通过准备充分、突出技术能力、强调测试思维、展示团队合作和提问兴趣,可以增加面试成功的机会。
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。