版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年自动化测试考试题及答案一、单项选择题(每题2分,共20分)1.在持续集成流水线中,以下哪一项最能体现自动化测试的“快速反馈”价值?A.单元测试在代码提交后3分钟内完成并推送结果B.接口测试每日凌晨2点定时执行C.性能测试在版本发布前一周集中回归D.手工验收测试由测试工程师在staging环境完成答案:A解析:快速反馈的核心是“尽可能早、尽可能快”。单元测试位于流水线最前端,执行时间短,能在代码刚提交就给出结果,符合快速反馈理念。2.某Web系统采用BDD框架进行UI自动化,下列Gherkin语句存在明显错误的是:A.Given用户已登录系统B.When用户点击“提交”按钮C.Then页面应该跳转到“/success”D.And数据库应插入一条status=1的记录答案:D解析:Gherkin场景层应聚焦“可观测行为”,数据库状态属于实现细节,应下沉到StepDefinition中验证,而非直接写在场景里。3.在Appium中,若Android设备出现“NoSuchContextError”,最可能的原因是:A.desiredCapabilities未声明platformNameB.当前界面为混合应用且未正确切换到Webview上下文C.未安装uiautomator2driverD.设备未开启USB调试答案:B解析:混合应用存在Native与Webview两种上下文,测试脚本需显式切换至Webview才能定位DOM元素,否则抛出NoSuchContextError。4.关于Pytest的fixture作用域,下列说法正确的是:A.scope="module"的fixture在每个测试类前后各执行一次B.scope="session"的fixture在并发执行时会被多次实例化C.scope="function"的fixture默认自动应用于所有测试函数D.使用autouse=True时,fixture的作用域仍受scope参数约束答案:D解析:autouse=True仅表示“自动使用”,并不改变作用域规则;scope="session"在多进程并发时仍保证全局唯一实例,由pytest-xdist的分布式锁机制保障。5.在接口自动化中,针对GraphQL与RESTful的断言差异,以下描述正确的是:A.GraphQL返回固定结构,可直接断言status_code==200B.RESTful返回字段动态变化,需使用JSONPath断言C.GraphQL单次请求可拿到关联数据,无需多次往返,断言时可一次性校验嵌套字段D.RESTful支持声明式查询参数,GraphQL不支持答案:C解析:GraphQL通过单一端点+查询语句减少往返,返回嵌套JSON,断言时可一次性校验深层字段;RESTful需多次请求才能拿到关联资源。6.使用JMeter进行压测时,若聚合报告中的99%Line为800ms,意味着:A.99%的请求响应时间≤800msB.1%的请求响应时间≥800msC.平均响应时间为800msD.最大响应时间为800ms答案:A解析:百分位线定义中,99%Line表示99%样本值≤该值,是性能验收的常用指标。7.在SonarQube质量阈中,若“条件覆盖率”指标被设置为80%,则:A.只要行覆盖率达到80%,条件覆盖率可低于80%B.条件覆盖率=(覆盖的条件数/总条件数)×100%,必须≥80%C.条件覆盖率仅计算if语句,不含switchD.条件覆盖率与分支覆盖率是同一指标的不同翻译答案:B解析:条件覆盖率(ConditionCoverage)统计布尔子表达式真假是否均被测试,门槛80%表示必须≥80%才能通过质量阈。8.在RobotFramework中,以下哪条语句可以正确等待元素可见且可点击:A.WaitUntilElementIsVisible|id=submitB.WaitUntilElementIsEnabled|id=submitC.WaitUntilElementIsVisibleAndEnabled|id=submitD.WaitUntilPageContainsElement|id=submit答案:C解析:只有“可见且可用”才满足可点击条件,SeleniumLibrary提供关键字WaitUntilElementIsVisibleAndEnabled一次性完成双重等待。9.针对微服务架构,契约测试(ContractTest)主要解决:A.单服务内部算法正确性B.服务间接口变更导致的联调失败C.数据库性能瓶颈D.前端UI样式回归答案:B解析:契约测试验证消费者与提供者之间的接口契约,一旦提供者未按契约变更,测试立即失败,避免联调阶段才发现不兼容。10.在Docker化SeleniumGrid中,以下docker-compose片段存在隐患的是:```yamlchrome:image:selenium/node-chrome:4.15.0environment:HUB_HOST=hubNODE_MAX_INSTANCES=5NODE_MAX_SESSION=5volumes:/dev/shm:/dev/shmdepends_on:hub```A.NODE_MAX_INSTANCES与NODE_MAX_SESSION相等,可能导致资源抢占B.未声明shm大小,默认64M可能触发Chrome崩溃C.depends_on仅保证启动顺序,不等待hub完全就绪D.镜像版本4.15.0过旧,存在CVE答案:C解析:depends_on仅控制启动顺序,不检测TCP端口是否可用;若hub未就绪,node注册失败,需配合healthcheck或wait-for脚本。二、多项选择题(每题3分,共15分)11.以下哪些做法可以有效降低UI自动化用例的“假阴性”率:A.使用智能等待(ExplicitWait)替代固定sleepB.对动态元素采用“数据属性”定位而非class索引C.在断言前加入3秒强制延时D.对图片验证码使用打码平台自动识别E.引入重试机制,仅对StaleElementRef异常重试一次答案:A、B、E解析:强制sleep增加用例耗时且无法根治时序问题;打码平台属于外部依赖,可能引入新的不稳定因素。12.关于Allure报告特性,下列说法正确的有:A.支持在测试方法上通过@allure.step添加子步骤B.支持在失败用例中自动保存最后10秒的视频C.支持将环境变量写入environment.xml并在首页展示D.支持用@allure.issue链接到Jira,点击直接跳转E.支持在CI中通过allure-commandline生成趋势图答案:A、C、D、E解析:视频录制需配合pytest-html或selenoid,Allure自身不保存视频。13.在PostmanNewman命令行执行时,以下参数组合可以实现“生成JUnitXML并在失败时返回非0退出码”的有:A.newmanruncollection.json-rjunit,cliB.newmanruncollection.json-rjunit--reporter-junit-exportresult.xmlC.newmanruncollection.json--bailD.newmanruncollection.json-rjunit,cli--reporter-junit-exportresult.xml--bailE.newmanruncollection.json--suppress-exit-code答案:A、B、D解析:--suppress-exit-code会强制返回0,与题意相反;--bail可在首个断言失败时立即退出并返回非0。14.以下属于“非功能自动化测试”范畴的有:A.使用Gatling进行10万并发压力测试B.使用OWASPZAP扫描XSS漏洞C.使用Selenium对登录页进行UI回归D.使用LighthouseCI检测首屏性能指标E.使用ArchUnit检测代码循环依赖答案:A、B、D解析:C属于功能回归;E属于静态代码架构测试,不算非功能。15.在Kubernetes中部署测试Pod时,为提高资源利用率并保证QoS,可采取的策略有:A.给测试Pod设置requests与limits相等,提升QoS等级为GuaranteedB.使用nodeSelector将测试Pod调度到专用测试节点C.使用CronJob在夜间批量运行回归测试,白天缩容D.给测试Pod添加PriorityClass,优先级高于生产PodE.使用emptyDir存储测试临时文件,避免占用宿主机磁盘答案:A、B、C解析:测试Pod优先级高于生产Pod存在风险;emptyDir随Pod删除而清空,适合临时文件,但与资源利用率无直接关系。三、判断题(每题1分,共10分)16.在Pytest中,conftest.py文件只能放在项目根目录,否则无法被识别。答案:错解析:conftest.py可存在于任何测试目录,pytest会递归向上搜索并合并。17.在Cypress中,ercept()可以拦截GraphQL请求,但无法修改响应体。答案:错解析:ercept()支持使用req.reply()动态修改响应体,实现Mock。18.在接口测试中,使用JSONSchema断言可以验证字段类型、必填属性、枚举值,但无法校验数值范围。答案:错解析:JSONSchema支持minimum、maximum、exclusiveMinimum等关键字,可校验数值范围。19.在JenkinsPipeline中,使用post{always{junit'result.xml'}}可确保无论构建结果如何都发布测试报告。答案:对解析:postalways保证无论成功、失败、中止都会执行。20.在Appium中,若设置autoGrantPermissions=true,则安装APK时会自动授予清单中所有危险权限,无需额外处理系统弹窗。答案:对解析:该capability会在安装时通过pmgrant命令批量授权,适用于自动化场景。21.在性能测试中,TPS越高一定代表用户体验越好。答案:错解析:高TPS若伴随高延迟或错误率,反而降低体验;需综合延迟、错误、资源等多指标评估。22.在代码覆盖率统计中,行覆盖率达到100%即代表程序无缺陷。答案:错解析:覆盖率仅衡量代码是否被执行,不衡量业务正确性;100%覆盖仍可能有逻辑缺陷。23.在RobotFramework中,关键字BuiltIn.Log默认使用INFO级别,可输出HTML片段。答案:对解析:Log关键字支持参数html=True,将内容作为富文本写入日志。24.在Docker中,使用--networkhost模式运行Selenium容器可避免端口映射,但会牺牲网络隔离。答案:对解析:host模式共享宿主机网络栈,性能更好,但容器间不再隔离。25.在GitLabCI中,only/except与rules关键字可同时出现在同一job中,且互不影响。答案:错解析:GitLab13起推荐使用rules,若同时存在,rules会覆盖only/except,产生冲突。四、填空题(每空2分,共20分)26.在Pytest中,若想让某fixture在并发执行(pytest-xdist)时仍保持全局唯一,可使用内置锁机制,并在fixture上添加参数________。答案:scope="session"解析:session级fixture由xdist的分布式锁保证仅实例化一次。27.在JMeter中,若想提取JSON响应中数组第一个元素的id字段,应使用的后置处理器为________,表达式为________。答案:JSONExtractor、$[0].id解析:JSONExtractor支持JSONPath语法,$[0]表示数组首元素。28.在Cypress中,若需对同一测试用例多次迭代不同数据,可使用官方插件________实现数据驱动。答案:cypress-fixture-plugin解析:该插件支持从CSV/JSON读取多行数据,结合cy.each()实现迭代。29.在Postman中,为了在不同环境间复用同一集合,可将域名抽离到________文件中,并通过________语法引用。答案:environment、{{baseUrl}}解析:环境变量使用双大括号占位符,集合中替换域名即可。30.在SonarQube中,若需排除生成的迁移文件,可在perties中设置________属性。答案:sonar.exclusions=/migrations/解析:该属性支持Ant风格路径,排除指定目录。31.在Shell脚本中,若需等待SeleniumGridHub完全就绪,可循环访问________端点,直到返回JSON中ready字段为true。答案:http://hub:4444/wd/hub/status解析:Grid提供标准状态接口,返回ready字段表示节点注册完成。32.在Python中,使用requests库发送带文件的multipart/form-data请求时,files参数应传入________类型对象。答案:tuple或listoftuples解析:files={'file':('name.pdf',open('name.pdf','rb'),'application/pdf')}。33.在Jenkins中,若需在Pipeline里动态获取构建触发者邮箱,可使用全局变量________。答案:currentBuild.getBuildCauses()[0].userId解析:getBuildCauses()返回触发原因列表,取首个元素的userId再查询邮箱。34.在Gatling中,若想打印每秒请求数到控制台,需在simulation中加入________协议配置。答案:.protocols(httpProtocol.inferHtmlResources().silentResources)解析:silentResources过滤静态资源,避免干扰TPS统计。35.在Linux中,若需限制测试进程最大内存为2G,可使用命令________。答案:ulimit-v2097152解析:-v参数单位是KB,2097152KB=2GB。五、简答题(每题10分,共20分)36.描述在微服务架构下,如何构建一条“接口层+契约层+端到端层”三级自动化测试流水线,并说明各层关注的重点、用例量级、运行频率及失败处理策略。答案与解析:接口层:1.关注:单服务内部REST/GraphQL接口功能正确性、状态码、异常码、边界值。2.量级:每个微服务200~500条,总量与代码行数成正比。3.频率:代码提交即触发,平均3~5分钟完成。4.失败策略:立即阻塞合并请求,回滚代码,通知开发者。契约层:1.关注:服务间契约一致性,消费者驱动,使用Pact/SpringCloudContract。2.量级:按消费者与提供者配对,每对20~50条关键交互。3.频率:消费者端提交契约文件后触发,提供者每日定时验证。4.失败策略:提供者侧失败则禁止发布到预发布环境,消费者侧失败则禁止合并新功能分支。端到端层:1.关注:核心业务流程跨服务串联,覆盖支付、下单、库存等黄金链路。2.量级:不超过100条,严格筛选高价值场景。3.频率:每日凌晨定时执行,周末全量回归。4.失败策略:发送飞书/Slack告警,创建P1缺陷,次日站会评审,必要时触发热修复版本。37.某电商系统在大促期间出现“库存超卖”问题,现有自动化测试未发现。请设计一套基于“事件溯源+测试替身”的自动化回归方案,确保库存扣减原子性,并给出关键实现伪代码。答案与解析:方案概述:1.在测试环境搭建与生产同构的事件溯源架构,使用Kafka作为事件总线,库存服务订阅“OrderCreatedEvent”。2.测试替身:使用Testcontainers启动Kafka、PostgreSQL、Redis的轻量级容器,避免外部依赖。3.测试场景:并发1000线程同时下单同一SKU,预期库存仅扣减1000次,最终库存=初始库存1000。4.断言策略:通过读取事件存储中的“InventoryDeductedEvent”数量,以及最终快照状态,双重校验。关键伪代码(Python+pytest+Testcontainers):```python@pytest.fixture(scope="session")defkafka_container():kafka=KafkaContainer("confluentinc/cp-kafka:7.5.0")kafka.start()yieldkafkakafka.stop()@pytest.fixturedefinventory_service(kafka_container):returnInventoryService(bootstrap_servers=kafka_container.get_bootstrap_server())deftest_concurrent_deduct(inventory_service):sku_id="SKU123"initial_stock=5000inventory_service.replenish(sku_id,initial_stock)defplace_order():resp=inventory_service.create_order(sku_id,1)assertresp.status_code==200threads=[Thread(target=place_order)for_inrange(1000)]fortinthreads:t.start()fortinthreads:t.join()events=inventory_service.read_events(sku_id,event_type="InventoryDeductedEvent")assertlen(events)==1000snapshot=inventory_service.get_snapshot(sku_id)assertsnapshot.stock==initial_stock1000```解析:通过事件数量与快照状态双断言,确保无超卖;Testcontainers保证测试可重复、无外部状态残留。六、计算题(共15分)38.某接口在5分钟压测中共收到300万次请求,其中成功299.4万次,失败0.6万次;平均响应时间50ms,标准差10ms。请计算:(1)平均TPS;(2)99%置信区间下的响应时间上限(假设正态分布);(3)若目标SLA为99.9%成功率,是否达标?答案与解析:(1)平均TPST(2)99%置信区间对于正态分布,99%双侧对应Z=2.576μ即99%置信区间上限为75.76ms。(3)SLA达标判断实际成功率=未达标,需排查0.6万次失败原因。七、综合设计题(共30分)39.背景:某金融公司核心账务系统采用传统集中式架构,计划两年内拆分为50个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 监控安防施工达标检测卷含完整答案
- 烧伤外科护理分类真题(附答案)
- 多耐的课件护理:护理伦理与法律法规
- 养老护理环境清洁的可持续发展策略
- 护理技能操作标准化课件
- 卒中护理中的健康教育
- 小儿发热时如何进行背部护理
- 托幼所基础创设 3
- 护理师资沟通中的沟通能力培养
- 幼儿园活动方案
- DB35T 1036-2023 10kV及以下电力用户业扩工程技术规范
- 北京市初级注册安全工程师真题
- DL∕T 1315-2013 电力工程接地装置用放热焊剂技术条件
- 婴儿护肤品中的创新成分
- 符合TSG07-2019规范电梯安装含修理质量手册+程序文件+部分维保方案及自检记录表样2021版
- 化学品作业场所安全警示标志双氧水
- 22G101三维立体彩色图集
- 子宫MRI诊断课件-
- 临床医学概要
- 药剂学试题及答案
- 联合国国际货物销售合同公约课件
评论
0/150
提交评论