前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >金九银十,自动化面试题放送一波

金九银十,自动化面试题放送一波

作者头像
ITester软件测试小栈
发布2021-10-27 10:54:14
5320
发布2021-10-27 10:54:14
举报
文章被收录于专栏:全栈测试

本文2933字,阅读约需7分钟

Hi,大家好。站在10月的尾巴,即将迎来11月,今天分享9道常见的自动面试题,如果想要获取更多面试题,可以在后台回复“面试顺利”进行解锁。

1

请问你是如何做接口测试的?

大体来说,经历以下过程:接口需求调研、接口测试工具选择、接口测试用例编写、接口测试执行、接口测试回归、接口测试自动化持续集成。具体来说,接口测试流程分成以下步:

第一步:分析出测试需求,并请开发提供接口说明文档;

第二步:从接口说明文档中整理出接口测试用例,里面要包括详细的入参(正常情况,异常情况包括输入参数个数,类型,可选/必选,考虑参数有互斥或关联的情况)和出参数据(符合接口文档需求)以及明确的格式和检查点;

第三步:与开发一起对接口测试用例进行评审;

第四步:结合开发库,准备接口测试用例中的入参数据和出参数据,并整理成Excel格式的文件;

第五步:结合接口测试用例文档和Excel格式的数据文档,编写接口自动化测试的业务逻辑代码;

第六步:开始执行接口自动化测试用例;

第七步:执行如有bug,提交至缺陷管理平台;

第八步:开发修改完成后,回归bug,跟踪状态;

第九步:完成后进行自动化持续集成。

2

接口测试质量评估标准是什么?

一般来说,从以下个方面评估:

1) 业务功能覆盖是否完整;

2) 业务规则覆盖是否完整;

3) 参数验证是否达到要求(边界、业务规则);

4) 接口异常场景覆盖是否完整;

5) 接口覆盖率是否达到要求;

6) 代码覆盖率是否达到要求;

7) 性能指标是否满足要求;

8) 安全指标是否满足要求。

3

元素定位不到的原因?

1)页面加载元素过慢,加等待时间。

2)页面有frame框架页,需要先跳转入frame框架再定位。

3)可能该元素是动态元素,定位方式要优化,可以使用部分元素定位或通过父节点或兄弟节点定位。

4)可能识别了元素,但是不能操作,比如元素不可用,不可写等。需要使用js先把前置的操作完成。

4

接口测试如何设计测试用例?

接口测试一般考虑入参形式的变化和接口的业务逻辑,一般设计接口测试用例采用等价类、边界值、场景法居多。接口测试设计测试用例的思路如下:

1)接口业务逻辑测试(正例)

接口逻辑测试是指根据业务逻辑、输入参数、输出值的描述,对正常输入情况下所得的输出值是否正确的测试,也就是测试对外提供的接口服务是否正常工作。

2)接口安全及接口异常场景(反例)

① 鉴权码token异常(鉴权码为空<没有鉴权码>,错误的鉴权码,过期的鉴权码)。

② 必填项检查。

③ 参数的长度、类型、格式异常:

  • 常规参数:(数字、字符串、日期);
  • 参数长度:6-18位。或身份证、电话的长度;
  • 参数类型:数字(精度),字母,中文,带空格的参数,特殊字符;
  • 日期格式:日期:年月日,年月日时分秒,日期格式(包括/,-,:等)。

④ 错误码异常覆盖。

⑤ 接口测试其他的关注点:

  • 接口有翻页时,页码与页数的异常值测试;
  • 数据库的增删改查,比如一个post接口操作完成后,通过列表页接口看下新的数据是否和刚才的post一致;
  • 接口返回的图片地址能否打开,图片尺寸是否符合需求;
  • 当输出参数有联动性时,需要校验返回参数的实际结果是否都符合需求;
  • 所有功能都要考虑兼容旧版本。

5

selenium如何处理alert?

(1) alert弹框类型

alert:提醒对话框; confirm:确认对话框; prompt:要求用户输入,然后返回结果的对话框;

(2) 3种alert使用

① alert用法:

② confirm用法:

③ prompt用法:

6

接口测试执行中需要比对数据库吗?

7

PO设计模式的原理?哪些地方能够改善?

8

selenium工作原理?

1)selenium client(python等语言编写的自动化测试脚本)初始化一个service服务,通过webdriver启动浏览器驱动程序chromedriver.exe;

2)通过RemoteWebDriver向浏览器驱动程序发送HTTP请求,浏览器驱动程序解析请求,打开浏览器,并获得sessionid,如果再对浏览器操作需携带此id;

3)打开浏览器后,所有的selenium的操作(访问地址,查找元素)均通过RemoteConection连接到remote server,然后使用execute方法调用request方法通过urlib3向remote server请求;

4)浏览器通过请求的内容执行对应动作;

5)浏览器再把执行的动作结果通过浏览器驱动程序返回给测试脚本。

9

浅拷贝和深拷贝的区别?

1)浅拷贝可以使用列表自带的copy()函数(如list.copy()),或者使用copy模块的copy()函数。深拷贝只能使用copy模块的deepcopy(),所以使用前要导入:from copy import deepcopy;

2)如果拷贝的对象里的元素只有值,没有引用,那浅拷贝和深拷贝没有差别,都会将原有对象复制一份,产生一个新对象,对新对象里的值进行修改不会影响原有对象,新对象和原对象完全分离开。

3)如果拷贝的对象里的元素包含引用(像一个列表里储存着另一个列表,存的就是另一个列表的引用),那浅拷贝和深拷贝是不同的,浅拷贝虽然将原有对象复制一份,但是依然保存的是引用,所以对新对象里的引用里的值进行修改,依然会改变原对象里的列表的值,新对象和原对象完全分离开并没有完全分离开。而深拷贝则不同,它会将原对象里的引用也新创建一个,即新建一个列表,然后放的是新列表的引用,这样就可以将新对象和原对象完全分离开。

以上

That‘s all

更多系列文章

敬请期待


ITester软件测试小栈(ID:ITestingA),专注于软件测试技术和宝藏干货分享,每周准时更新原创技术文章,每月不定期赠送技术书籍,愿我们在更高处相逢。喜欢记得星标⭐我,每周及时获得最新推送,第三方转载请注明出处。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ITester软件测试小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (1) alert弹框类型
  • alert:提醒对话框; confirm:确认对话框; prompt:要求用户输入,然后返回结果的对话框;
  • (2) 3种alert使用
  • ① alert用法:
  • ② confirm用法:
  • ③ prompt用法:
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档