版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年测试开发工程师岗位招聘面试考试试题及参考答案一、单项选择题(每题2分,共20分。每题只有一个正确答案,请将正确选项字母填入括号内)1.在Linux系统中,查看当前目录下所有文件(含隐藏文件)详细信息的命令是()A.lsaB.lslC.lsalD.lsd答案:C2.某Web接口返回JSON结构{"code":0,"data":{"uid":10086,"nick":"tom"}},使用Python提取nick字段值,最安全的写法是()A.json.loads(resp)["data"]["nick"]B.json.loads(resp).get("data",{}).get("nick")C.json.loads(resp)["data"].get("nick")D.json.loads(resp).get("data")["nick"]答案:B3.在MySQL8.0中,建立唯一索引的语句是()A.CREATEINDEXuniq_idxONuser(name)B.CREATEUNIQUEINDEXuniq_idxONuser(name)C.ALTERTABLEuserADDINDEXuniq_idx(name)D.ALTERTABLEuserADDUNIQUEKEYuniq_idx(name)答案:B4.使用Postman批量运行集合时,实现数据驱动测试需上传的文件格式为()A.XMLB.YAMLC.JSON/CSVD.INI答案:C5.在JMeter中,用于提取响应头SetCookie中sessionId的正则提取器配置,模板应填()A.$0$B.$1$C.$2$D.${sessionId}答案:B6.某算法时间复杂度为O(nlogn),当输入规模扩大4倍时,理论耗时约为原来的()A.4倍B.8倍C.16倍D.4log4倍答案:D7.在Git中,将当前分支dev强制推送到远程同名分支的正确命令是()A.gitpushorigindevB.gitpushforigindevC.gitpushsetupstreamorigindevD.gitpushallorigin答案:B8.使用SeleniumWebDriver定位class包含btn且文本为“提交”的按钮,最佳CSS选择器是()A..btnB.button[class='btn']C.button.btnD.button.btn:contains('提交')答案:B9.在Dockerfile中,指定容器启动默认执行的指令是()A.RUNB.CMDC.ENTRYPOINTD.ENV答案:B10.对一段Python代码做静态类型检查,官方推荐的工具是()A.pylintB.flake8C.mypyD.bandit答案:C二、多项选择题(每题3分,共15分。每题有两个或两个以上正确答案,多选、少选、错选均不得分)11.以下属于HTTP/2新特性的有()A.头部压缩B.服务器推送C.多路复用D.基于文本的协议答案:A、B、C12.关于Python装饰器,下列说法正确的有()A.装饰器本身必须是可调用对象B.装饰器一定会改变原函数的__name__属性C.functools.wraps可保留原函数元数据D.一个函数可同时被多个装饰器叠加答案:A、C、D13.在持续集成流水线中,以下哪些环节通常包含质量门禁()A.单元测试通过率B.代码覆盖率C.静态代码扫描等级D.需求评审结论答案:A、B、C14.以下SQL语句可触发索引失效的有()A.SELECTFROMuserWHEREYEAR(birth)=1990B.SELECTFROMuserWHEREnameLIKE'%tom'C.SELECTFROMuserWHEREid+1=100D.SELECTFROMuserWHEREname='tom'ANDage=20答案:A、B、C15.使用Appium进行Android自动化时,必需的环境有()A.AndroidSDKB.JDKC.AppiumServerD.Xcode答案:A、B、C三、填空题(每空2分,共20分)16.在TCP三次握手过程中,客户端发送的第二个报文段标志位是________。答案:SYN+ACK17.Python3中,使用________关键字可以捕获所有异常基类。答案:Exception18.在Linux中,将前台进程放入后台并暂停的快捷键是________。答案:Ctrl+Z19.使用JMeter进行参数化时,函数________可生成1到100之间的随机整数。答案:${__Random(1,100,)}20.在MySQL中,查看慢查询是否开启的命令是SHOWVARIABLESLIKE'________'。答案:slow_query_log21.对列表lst=[1,2,3,4,5]进行切片得到逆序的写法是lst[________]。答案:::122.HTTP状态码________表示“请求实体过大”。答案:41323.在Git中,撤销已提交但未推送的最近一次commit,使用命令gitreset________HEAD~1。答案:soft24.使用pytest运行测试时,生成Allure原始数据需添加参数________。答案:alluredir25.在Docker中,查看容器资源占用的命令是docker________。答案:stats四、判断题(每题1分,共10分。正确打“√”,错误打“×”)26.Python字典的键必须是不可变类型。答案:√27.HTTP/1.1默认开启长连接。答案:√28.在Linux中,硬链接可以跨文件系统。答案:×29.使用Selenium时,隐式等待与显式等待可同时生效,且取最短时间。答案:×30.在MySQL中,InnoDB支持表级锁,不支持行级锁。答案:×31.代码覆盖率100%意味着程序无缺陷。答案:×32.Docker镜像分层存储,修改容器层不会影响到镜像层。答案:√33.使用Postman的PrerequestScript可以动态修改请求体。答案:√34.Python的GIL限制了多线程利用多核CPU,但多进程不受此限制。答案:√35.在TCP四次挥手过程中,主动关闭方最后进入TIME_WAIT状态。答案:√五、简答题(封闭型,每题6分,共18分)36.描述在Linux服务器中,如何定位并杀死占用8080端口的进程,给出完整命令序列。答案:1.lsofi:8080列出占用8080的进程PID2.kill9PID强制终止该进程若lsof未安装,可改用:netstattunlp|grep8080获取PID,再执行kill9PID37.说明数据库事务的四大特性,并给出MySQL中开启事务的两种写法。答案:四大特性:原子性、一致性、隔离性、持久性(ACID)。开启写法:1.STARTTRANSACTION;2.BEGIN;38.简述接口幂等性的含义,并给出HTTP协议中天然幂等的两个方法。答案:幂等性指一次或多次调用同一接口产生副作用相同。天然幂等方法:GET、PUT、DELETE、HEAD、OPTIONS。六、开放型简答题(每题8分,共16分)39.某微服务A通过RESTful接口调用服务B,近期出现间歇性超时。请列出至少四条排查思路并说明所需工具或命令。答案:1.网络延迟:ping、traceroute查看RTT与路由跳数2.服务B负载:top、vmstat、dockerstats查看CPU、内存、IO3.连接池耗尽:netstatan|grep:port统计ESTABLISHED连接数4.GC停顿:jstatgcpid1s10查看FullGC次数与耗时5.日志异常:grepERRORserviceB.log定位业务异常6.数据库慢查询:开启MySQL慢查询日志,ptquerydigest分析40.测试发现某订单接口在高并发下出现“重复下单”问题,请从测试角度提出三种可落地的验证方案。答案:1.幂等Token:在预下单阶段返回唯一token,下单时携带,并发压测JMeter脚本中设置CSV读取token,验证同一token仅成功一次2.分布式锁:查看代码是否使用Redissetnxex,通过arthastrace命令观察锁竞争3.数据库唯一索引:对user_id+product_id+status建立联合唯一索引,并发脚本故意重复提交,验证数据库报错及业务回滚七、应用题(综合类,共41分)41.代码走读与缺陷定位(10分)阅读以下Python代码,指出至少三处潜在缺陷并给出修复建议。```pythonimportsqlite3deftransfer(from_id,to_id,amount):conn=sqlite3.connect("bank.db")cur=conn.cursor()cur.execute("UPDATEaccountSETbalance=balance?WHEREid=?",(amount,from_id))cur.execute("UPDATEaccountSETbalance=balance+?WHEREid=?",(amount,to_id))mit()conn.close()```答案:1.未检查余额是否充足,导致透支2.无异常处理,中间失败无法回滚3.无并发控制,高并发可能产生脏读4.未关闭游标,建议with语句或try/finally修复:使用事务、加锁、异常捕获、余额检查42.算法设计(11分)给定一个长度为n的整数数组arr,返回出现次数超过n/2的元素(多数元素)。要求时间复杂度O(n),空间复杂度O(1)。请写出完整Python实现并附带关键注释。答案:```pythondefmajority_element(arr):BoyerMoore投票算法count,candidate=0,Nonefornuminarr:ifcount==0:candidate=numcount+=(1ifnum==candidateelse1)验证阶段,题目保证存在可省略returncandidate测试print(majority_element([2,2,1,1,1,2,2]))输出2```43.性能分析(10分)某接口压测结果:并发100,平均响应时间200ms,吞吐量400TPS。请计算:1.服务器平均并发连接数(Little定律)2.若预期平均响应时间降至100ms,在并发连接数不变的情况下,吞吐量可提升到多少?答案:1.N=TPS×RT=400×0.2=802.TPS=N/RT=80/0.1=80044.测试方案设计(10分)某电商App新增“秒杀”活动,商品库存100件,时间10:0010:05,参与用户10万。请给出一份包含测试目标、测试类型、工具选型、核心场景、通过准则的完整测试方案。答案:测试目标:验证系统在10万并发下库存扣减正确、不超卖、响应时间<1s、成功率>99%测试类型:负载、压力、稳定性、异常、安全工具选型:JMeter+Redis监控+MySQLbinlog校验+Prometheus+Grafana核心场景:1.10:00瞬时10万请求,100库存扣完即止2.同一用户多账号并发,验证防刷策略3.网络异常重试,验证幂等通过准则:库存最终为0且无负值,订单表记录100,无重复user_id,P99响应<1s,GC停顿<200ms,日志无ERROR八、编程题(20分)45.实现一个基于Python+Flask的极简接口测试桩服务,要求:1.监听5000端口2.提供POST/login,接收JSON{"user":"admin","pwd":"123456"},返回{"code":0,"token":"abc"},其他情况返回{"code":1}3.提供GET/info,需在Header中带XToken=abc,返回{"name":"admin"},否则返回4014.代码需包含异常处理与日志打印答案:```pythonfromflaskimportFlask,request,jsonifyimportloggingapp=Flask(__name__)logging.basicConfig(level=logging.INFO)@app.route('/login',methods=['POST'])deflogin():try:data=request.get_json(force=True)ifdata.get('user')=='admin'anddata.get('pwd')=='123456':returnjsonify(code=0,token='abc')returnjsonify(code=1)exceptExceptionase:logging.error(e)returnjsonify(code=1),400@app.route('/info',methods=['GET'])definfo():ifrequest.headers.get('XToken')=='abc':returnjsonify(name='admin')returnjsonify(error='Unauthorized'),401if__name__=='__main__':app.run(host='',port=5000)```九、数据库综合题(15分)46.现有订单表order(id,user_id,sku_id,price,num,status,create_time),请完成以下需求:1.写出建表语句,要求id为主键自增,status枚举('INIT','PAID','CANCEL'),create_time默认当前时间2.查询昨日支付成功订单的GMV(总价=pricenum)3.给user_id+sku_id+status建立联合索引,写出语句答案:1.```sqlCREATETABLE`order`(idBIGINTAUTO_INCREMENTPRIMARYKEY,user_idBIGINTNOTNULL,sku_idBIGINTNOTNULL,DECIMAL(10,2)NOTNULL,INTNOTNULL,ENUM('INIT','PAID','CANCEL')NOTNULL,create_timeDATETIMEDEFAULTCURRENT_TIMESTAMP);```2.```sqlSELECTSUM(pricenum)ASgmvFROM`order`WHEREstatus='PAID'ANDDATE(create_time)=CURDATE()1;```3.```sqlCREATEINDEXidx_user_sku_statusON`order`(user_id,sku_id,status);```十、LinuxShell编程(10分)47.编写一个脚本monitor.sh,每5秒检测一次Web服务(:8080)是否返回200,若连续3次失败则重启服务并写入/var/log/web_restart.log,要求后台运行、可开机自启。答案:```bash!/bin/bashmonitor.shURL=":8080/health"count=0whiletrue;doifcurlso/dev/nullw"%{http_code}""$URL"|grepq'200';thencount=0else((count++))if[$countge3];thensystemctlrestartmywebecho"$(date'+%F%T')restarteddueto3failures">>/var/log/web_restart.logcount=0fifisleep5done加入crontabe@reboot/opt/monitor.sh&或写systemdservice```十一、安全测试题(10分)48.某登录接口POST/login仅做前端MD5加密,后端直接比对密文。请指出风险并给出测试验证步骤。答案:风险:密文即密码,重放攻击、数据库泄露即泄露密码、无法防暴力破解测试步骤:1.用BurpSuite抓包,重放密文,观察是否仍能登录→验证重放2.修改密码后,用旧密文尝试登录→验证密文不变3.SQL注入测试:在user字段输入admin'or'1'='1,观察是否绕过→验证注入4.弱口令爆破:加载top1000密码本,前端JS计算MD5,用Intruder批量发送,统计200响应→验证爆破十二、自动化框架设计(15分)49.公司决定基于pytest+Requests+Allure搭建接口自动化框架,请给出项目目录结构、核心模块职责、用例标记策略、CI集成命令。答案:目录结构:```api_automation/├──config/│├──env.yml├──data/│├──login.yml├──api/│├──base_api.py│├──user_api.py├──case/│├──test_user.py├──utils/│├──read_yaml.py│├──logger.py├──report/│├──html├──conftest.py├──pytest.ini├──requirements.txt```职责:base_api封装requests、统一打印日志;user_api继承实现业务;case层用pytest+yaml数据驱动;标记策略:@pytest.mark.smoke@pytest.mark.regress;CI命令:```bashpipinstallrrequirements.txtpytestmsmokealluredir=report/xmlalluregeneratereport/xmloreport/htmlclean```十三、算法性能调优(10分)50.某接口返回列表数据,原代码使用双重for循环去重,数据量10万时耗时8s。请给出优化方案并给出Python代码,目标耗时<1s。答案:利用集合哈希去重,单循环即可:```pythondefdedup(lst):seen=set()res=[]foriteminlst:ifitemnotinseen:seen.add(item)res.append(item)returnres测试10万随机整数,耗时约0.15s```十
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年上半年浙江杭州市卫生健康委员会所属十八家事业单位招聘高层次人才514人备考题库及答案详解(考点梳理)
- 2026江西新余市社会保险服务中心招聘见习生2人备考题库及答案详解(新)
- 2025-2026学年第二学期山西金融职业学院招聘校外兼职教师1人备考题库二及一套答案详解
- 2026年宣城绩溪县事业单位公开招聘工作人员16名考试参考试题及答案解析
- 2026贵州从江瑶浴产业发展有限公司招聘4人笔试备考试题及答案解析
- 2026湖南长沙市麓山滨江实验学校编外教师招聘备考考试试题及答案解析
- 2026上海政法学院招聘27人考试参考试题及答案解析
- 公开招聘1名章贡区商会工作人员考试参考题库及答案解析
- 2026云南玉溪宸才人力资源咨询管理有限公司招聘消防监控值班员备考考试试题及答案解析
- 2026四川乐山市峨边彝族自治县残疾人联合会选聘就业困难人员从事公益性岗位6人考试参考试题及答案解析
- 雨课堂在线学堂《审美的历程》作业单元考核答案
- 四年级数学除法三位数除以两位数100道题 整除 带答案
- 装修公司施工进度管控流程详解
- 村委会 工作总结
- 2025国家电网考试历年真题库附参考答案
- (正式版)DB33∕T 2059-2025 《城市公共交通服务评价指标》
- 2024-2025学年江苏省南京市玄武区八年级上学期期末语文试题及答案
- 连锁餐饮门店运营管理标准流程
- GB/T 755-2025旋转电机定额与性能
- 钢结构防护棚工程施工方案
- 2025低空经济发展及关键技术概况报告
评论
0/150
提交评论