Python测试工程师面试真题(初-中级 含答案)_第1页
Python测试工程师面试真题(初-中级 含答案)_第2页
Python测试工程师面试真题(初-中级 含答案)_第3页
Python测试工程师面试真题(初-中级 含答案)_第4页
Python测试工程师面试真题(初-中级 含答案)_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python测试工程师面试真题(初/中级含答案)说明:本套试题贴合互联网、软件测试岗真实面试场景,无书面化空话,覆盖Python基础、测试常用语法、接口自动化、UI自动化、测试实战、代码排错、性能测试基础等核心考点,适配功能测试转自动化测试、初级Python测试工程师面试考核。一、Python基础语法面试题(必问基础)1、简述Python列表和元组的区别,测试工作中分别怎么使用?参考答案:1)本质区别:列表list是可变序列,支持增删改查;元组tuple是不可变序列,定义后无法修改元素。2)语法区别:列表用[]定义,元组用()定义,单元素元组必须加逗号。3)使用场景:测试工作中,频繁变动的测试数据、接口参数列表、用例集合用列表;固定不变的常量数据、接口固定参数、配置信息用元组,避免代码运行中被误修改,提升脚本稳定性。2、Python中字典的特性是什么?日常自动化测试中哪些场景会用到字典?参考答案:字典是键值对存储结构,key唯一、不可变,value可任意数据类型,无序(3.7版本后有序),查询效率极高。测试常用场景:1)存储接口请求参数、响应结果数据;2)封装测试用例,一个字典对应一条用例的入参、预期结果、用例名称;3)读取配置文件数据,统一管理环境地址、账号密码、超时时间等配置。3、简述Python深拷贝和浅拷贝的区别,举一个测试脚本中踩坑的场景参考答案:浅拷贝:只拷贝外层对象,内层嵌套对象共用内存地址,修改嵌套数据会影响原对象;深拷贝:完全拷贝整个对象,内外层数据独立,修改拷贝后的数据不会影响原数据。实战踩坑:自动化测试中,多条测试用例共用同一个嵌套字典参数,浅拷贝后修改单条用例参数,导致其他用例参数被篡改,最终用例执行失败,改用深拷贝可解决该问题。4、Python中try-except异常捕获的作用是什么?自动化脚本中为什么必须加异常处理?参考答案:作用:捕获代码运行中的报错,避免程序直接崩溃终止,同时可以自定义报错信息、记录错误日志。测试脚本必要性:自动化执行批量用例时,单条用例接口超时、参数错误、页面元素找不到等问题,若无异常捕获,会导致整个测试套件终止执行;添加异常捕获后,可跳过失败用例、记录报错日志、继续执行后续用例,保证测试流程完整。5、for循环和while循环的适用场景?自动化中遍历测试用例常用哪种?参考答案:for循环:适用于已知循环次数、遍历序列(列表、字典、用例集)的场景;while循环:适用于未知循环次数、满足条件持续循环的场景,比如轮询接口状态、等待页面加载。自动化遍历测试用例、接口参数集合,优先使用for循环,代码更简洁、可读性更高。二、Python接口自动化测试专项题(核心高频)1、简述requests库常用请求方法,以及get和post请求的核心区别参考答案:常用方法:get、post、put、delete,分别对应查询、新增、修改、删除接口。核心区别:1)参数位置:get参数拼接在URL后面,post参数放在请求体中;2)数据长度:get有URL长度限制,无法传输大量数据,post无限制;3)安全性:get参数暴露在地址栏,安全性低,post相对安全;4)缓存机制:get请求默认可缓存,post不会被缓存。测试场景:查询类接口用get,提交数据、上传信息类接口用post。2、接口自动化中,如何实现接口依赖?比如登录token供后续接口使用参考答案:通过变量存储+全局参数传递实现,具体步骤:1)执行登录接口,从响应结果中提取token、cookie等鉴权参数;2)将token定义为全局变量,或写入配置文件、临时文件;3)后续业务接口请求时,在请求头中带入该token,完成鉴权调用。框架层面可通过前置夹具(setup)统一获取token,所有用例直接调用,减少重复代码。3、接口响应数据断言,你常用哪几种Python断言方式?分别适用什么场景?参考答案:1)等于断言(asserta==b):适用于固定值校验,比如状态码=200、返回提示文案固定;2)包含断言(assert内容in响应数据):适用于模糊校验,比如返回结果包含指定关键词;3)非空断言(assert数据isnotNone):适用于校验接口必填返回字段,如id、token不为空;4)长度断言(assertlen(数据)>0):适用于校验列表、数组数据是否返回有效内容。4、自动化测试中,如何处理接口超时、请求失败的问题?参考答案:1)设置超时时间:requests请求中添加timeout参数,避免请求一直阻塞;2)异常捕获:用try-except捕获超时异常、连接异常,记录报错信息;3)重试机制:对偶尔抖动的接口,添加重试装饰器或循环重试,限定重试次数;4)日志记录:超时后记录接口地址、请求参数、响应信息,方便定位问题;5)用例标记:区分网络问题、服务问题、代码问题,精准统计bug。5、简单说下接口测试中参数化的实现方式,Python中如何批量执行多组测试数据?参考答案:核心思路:测试数据和代码分离,批量读取数据执行用例。常用实现方式:1)基础方式:通过列表、字典嵌套存储多组数据,for循环遍历执行;2)框架方式:使用pytest的parametrize装饰器实现参数化;3)文件读取:读取Excel、yaml、json文件中的测试数据,适配大量测试用例场景。三、Python自动化框架与实战题(中高级必考)1、你熟悉pytest框架吗?简述setup/teardown的作用和执行顺序参考答案:pytest是Python主流自动化测试框架,简洁高效、支持参数化、夹具、多格式报告、用例筛选。setup/teardown是前后置夹具,用于统一处理用例前置和后置操作:1)函数级:setup_function/teardown_function,每个用例执行前后都会触发;2)类级:setup_class/teardown_class,整个测试类执行前后只触发一次;执行顺序:前置操作→测试用例→后置操作。实战用途:前置完成登录、初始化数据、打开页面;后置关闭资源、清理测试数据、退出登录。2、自动化测试用例执行失败,你一般从哪些维度排查问题?参考答案:1)脚本问题:参数错误、请求头缺失、断言逻辑错误、元素定位失效;2)环境问题:测试环境服务宕机、网络波动、接口地址配置错误;3)版本问题:服务迭代更新,接口字段、请求规则变更;4)数据问题:测试数据重复、数据过期、缺少前置依赖数据;5)服务bug:代码逻辑错误、参数校验异常、返回结果错误(真实功能bug)。3、Python自动化中,日志模块的作用是什么?你如何封装通用日志工具?参考答案:日志作用:记录脚本执行过程、报错信息、请求响应数据,替代print,方便问题追溯、复盘测试结果。通用封装思路:1)配置日志级别:debug、info、warning、error;2)设置日志格式:包含时间、文件名、行号、日志内容;3)双输出:同时输出到控制台和本地日志文件;4)统一调用:封装成公共工具类,所有测试用例直接调用,无需重复配置。4、UI自动化中,元素定位不稳定的常见原因?如何用Python代码优化?参考答案:常见原因:页面加载延迟、元素属性动态变化、定位方式不精准、页面弹窗遮挡。优化方案:1)强制等待改隐式/显式等待,通过WebDriverWait设置元素等待时间,等待元素加载完成再操作;2)优先使用稳定定位方式:id、name、xpath相对路径,避免绝对路径;3)操作前判断元素是否可见、可点击,规避遮挡问题;4)捕获元素未找到异常,记录日志并重试操作。四、代码读错/手写实战题(现场实操必考)1、找出以下代码的问题(接口请求常见错误)python

importrequests

url="/login"

data={"username":"test","password":"123456"}

res=requests.post(url,data)

print(res.json())参考答案:1)未添加请求头,部分接口会拒绝无headers的请求;2)未设置超时时间,接口卡死会导致脚本阻塞;3)未做异常捕获,接口报错直接崩溃;4)如果接口接收json格式参数,需使用json=data,而非data=data,参数格式不匹配会请求失败。2、手写一段简单的接口断言代码:调用查询用户接口,断言状态码200,返回用户名称不为空参考答案:python

importrequests

deftest_user_info():

url="/user/info"

headers={"token":"xxxxxx"}

res=requests.get(url,headers=headers,timeout=10)

#断言状态码

assertres.status_code==200

res_data=res.json()

#断言用户名非空

assertres_data.get("username")isnotNone

assertlen(res_data.get("username"))>0五、测试思维+场景面试题(软实力加分项)1、什么时候不适合做自动化测试?参考答案:1)项目迭代极快、需求频繁变更,脚本维护成本高于收益;2)一次性测试、临时回归场景,无需重复执行;3)界面频繁变动的UI功能,脚本极易失效;4)简单手动操作、执行耗时极短的基础功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论