软件测试面试题分享-No.7(接口自动化面试题)

简介: 今天分享一份来自某某微信交流群里面一个小伙伴整理的面试题。

今天分享一份来自某某微信交流群里面一个小伙伴整理的面试题,然后以我这个没正儿八经做过自动化的测试从业点点点工程师来谈一下自己如果遇到这类面试题的答题思路:

接口自动化面试题

1、接口自动化流程怎么做的,框架怎么搭建的?

流程:

   1、分析需求,确定测试范围

   2、搭建自动化测试环境、准备相关测试数据

   3、工具选型,搭建测试框架

   4、编写用例

   5、执行用例,生成测试报告

   6、持续集成

框架怎么搭建:
   如果是选择用现有框架的话,可以选择postman、jmeter、Robotframework等框架,也可以基于一些开源的框架平台上再去进行二次开发,比如httprunner等,觉得都用不习惯的话,可以考虑自己写代码封装新的框架。看这套面试题,求职者应该回答的是自己写代码的方式。

   自己框架搭建要考虑的问题:

   1、用例怎么存储,编写是否方便,易用性怎么样,学习成本高不高

   2、用例执行执行,日志,报告等如何查看

   3、断言如何设计,用例执行失败怎么处理等

   4、多人协作怎么管理代码等


2、你们公司没有通用的接口自动化框架吗?为什么还需要你们部门来搭建这套。

开源框架有开源框架的好处,但是也存在一些问题,有些数据处理起来没这么方便,易用性方面使用起来也不一定很方便,需要一定的学习成本。每个部门的业务场景不一样,开发平台/工具主要还是从成本以及解决某个实际问题的方便去考虑。


3、接口自动化回归过程中有没有发现什么问题?取得了怎么样的效果和收益?

   比如有时候,开发改某个需求,改动了一些公共的代码之类的,就有可能影响到其他的接口,如果之前稳定的接口已经写好用例的话,这种情况下就能快速的验证出来改动是否有问题。

   效果和收益的话,可以说一下接口自动化做起来之后,之前手动回归的功能现在变成自动回归了,节省了多少人力/时间。


4、接口自动化搭建和落地过程中遇到什么问题?

  用例怎么存储更方便,怎么样设计才能使得编写用例的时候方便,有没有什么办法自动生成用例,用例之间的依赖和数据传递怎么做,用例是否要区分环境,有些用例如果只能在测试环境执行,线上不能执行的,如何区分。怎么样设计能够支持快速切换到其他不同的平台上面去。


5、最难的技术难点是什么?

  动态变量参数化、接口依赖及中间变量问题、异步接口结果验证问题、相应参数化及嵌套很多的验证问题、接口测试框架的稳定性问题、多接口场景问题、多线程并发、多项目以及不同人员并发操作的情况。


6、你们持续集成是怎么做的?

持续集成的话,一般都是跟部署结合一起一起使用,比如测试环境更新后,自动触发用例执行。另外,可以设置每晚定时自动构建。


7、还有哪些可以优化的点?

8、代码结构分层是怎么样的?

9、有了jmeter等开源的接口自动化平台,为什么还要代码来做自动化?

哈哈,这个也是我想问那些自己写代码做自动化的,以及现在的一些培训机构教的java或者python自动化的模式,为什么不选用开源的框架或平台。其实,大家都心知肚明,自己写脚本写框架,更能体现你的水平,能够拿到的薪资更高。

自己写代码,在一定程度上,可以省去对工具的学习成本,虽然说工具的使用不难,但是要把工具用好也不容易,并不是只有写代码才能体现出你的能力。而且,写代码之前,要先了解一下现有工具的一些功能,看下有没有必要自己写代码封装框架。


10、你主要负责参与哪部分框架搭建,你们怎么合作共享代码的?

代码传递的话,一般都是通过git仓库去管理,然后再通过分支去管控,这个可以参考开发的代码分支管理。


11、数据驱动,关键字驱动怎么做的?

   数据驱动的话,有相应的包直接可以支持。关键字驱动的话,可以参考Robotframework框架,我所理解的关键字驱动,其实就是一种代码约定。


12、这套框架覆盖了开发多少代码量,怎么统计的?

   如果是统计代码覆盖率的话 ,一般都会用到相关的插件去进行统计,比如jacoco


13、总共多少测试用例,执行一次要多久,覆盖多少接口?

这个属于用例设计方面,主要考察你对项目的理解 ,对用例设计的把握,用例设计的覆盖度。


14、接口关联怎么处理的?

可以将依赖接口返回的数据存到一个项目级别的全局变量里面,然后在用例里面去识别某种特定格式的写法,按照变量去进行处理。


15、接口鉴权怎么做的?

   鉴权的话一般接口需要传token或者签名之类的,发送接口请求的时候才会校验通过。前几天看一位大佬分享的测开平台的设计,鉴权的话可以考虑绑定在接口域名级别,不用每个case都去单独处理一遍。


16、数据参数化,数据驱动,excel读取数据怎么做的?

   参数化的设计可以参考postman、jmeter的方式去进行处理。excel读取数据也有专门的库去进行操作,之前在网上看到别人写的一个读取excel的代码,不是一次性将数据都读取出来,而是使用yield关键字去进行处理。还有就是用例设计的时候,是考虑将数据放在一个页签,还是分不同的页签去处理,这个涉及到框架层面以后每加一个页签是否都需要改动代码。


17、数据库什么时候去校验的,哪些场景使用到了?

   进行接口断言或者是做一些初始化数据准备或者数据清理的时候,就有可能需要去操作数据库。


18、接口自动化数据传递方式及区别?

   这里我理解的应该是在考察发送请求的时候,数据放在params、data以及json参数中的区别。


   看完这样一套面试题,不知道小伙伴们心里有什么感觉呢?是觉得接口自动化简单还是复杂呢?。给我的感觉就是:有些东西做过就是做过,没做过的话,对于有经验的面试官,你没有那么容易蒙混过关,你会发现这些面试题都是一环套一环的,不是随便背几个面试题就可以应聘上专职自动化的岗位。以上所写仅供参考,大家如果有其他的文章或者面试题等,也可以发给小编哟。学习交流可以添加我的微信哟!

相关文章
|
1月前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
98 8
|
1月前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
1月前
|
测试技术 持续交付
探索软件测试中的自动化测试策略
随着软件开发周期的加速和市场需求的不断增长,传统的手动软件测试方法已难以满足现代软件开发的高效性和准确性要求。本文旨在探讨自动化测试在软件测试中的重要性、实施策略及其对提高软件质量的影响。通过分析自动化测试的优势与挑战,以及提供实用的自动化测试工具和框架选择指南,旨在帮助读者理解并应用自动化测试以提升软件开发效率和产品质量。
|
1月前
|
机器学习/深度学习 人工智能 监控
软件测试中的自动化测试策略与最佳实践##
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和加速产品上市的关键工具。本文将探讨自动化测试的重要性,分析不同类型的自动化测试工具和框架,并深入讨论实施自动化测试的最佳实践。通过案例研究和数据分析,我们将揭示如何有效整合自动化测试到软件开发生命周期中,以及它如何帮助团队提高测试效率和覆盖率。 ##
62 1
|
2月前
|
Java 测试技术 API
探索软件测试中的自动化框架选择####
在当今快节奏的软件开发周期中,自动化测试已成为确保产品质量与加速产品迭代的关键策略。本文深入剖析了自动化测试的核心价值,对比分析了市场上主流的自动化测试框架,旨在为项目团队提供选型时的考量因素及实践指南,助力高效构建适应未来变化的自动化测试体系。 ####
|
25天前
|
机器学习/深度学习 人工智能 jenkins
探索软件测试中的自动化与持续集成
【10月更文挑战第21天】 在软件开发的生命周期中,软件测试扮演着至关重要的角色。随着技术的进步和开发模式的转变,自动化测试和持续集成已经成为提高软件质量和效率的关键手段。本文将深入探讨自动化测试和持续集成的概念、实施策略以及它们如何相互配合以优化软件开发流程。我们将通过分析实际案例,展示这些技术如何在实际项目中发挥作用,以及面临的挑战和解决方案。此外,文章还将讨论未来趋势,包括人工智能在测试领域的应用前景。
77 17
|
1月前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
1月前
|
数据管理 测试技术 持续交付
软件测试中的自动化测试策略与最佳实践
在当今快速迭代的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市的关键手段。本文旨在探讨软件测试中的自动化测试策略,包括选择合适的自动化测试工具、构建有效的自动化测试框架以及实施持续集成和持续部署(CI/CD)。通过分析自动化测试的最佳实践,本文为软件开发团队提供了一系列实用的指南,以优化测试流程、提高测试效率并减少人为错误。
70 4
|
1月前
|
监控 测试技术 定位技术
探索软件测试中的自动化测试框架选择与实施###
本文不概述传统意义上的摘要内容,而是直接以一段对话形式引入,旨在激发读者兴趣。想象一下,你是一名勇敢的探险家,面前摆满了各式各样的自动化测试工具地图,每张地图都指向未知的宝藏——高效、精准的软件测试领域。我们将一起踏上这段旅程,探讨如何根据项目特性选择合适的自动化测试框架,并分享实施过程中的关键步骤与避坑指南。 ###
48 4
|
1月前
|
jenkins 测试技术 持续交付
软件测试中的自动化与持续集成
在现代软件开发过程中,自动化测试和持续集成已成为不可或缺的组成部分。本文将深入探讨自动化测试和持续集成的重要性、优势以及如何有效实施它们以提升软件质量和开发效率。通过具体案例分析,我们将展示这些技术如何在实际项目中发挥作用,并讨论其面临的挑战及应对策略。
57 3