测试攻城狮面试,经常会被问到这样一个常见的面试题,接口测试怎么做的?通常来说,月薪四位数的测试攻城狮简单的回答就是,进行参数的验证,必输非必输,长度,参数类型,以及接口功能逻辑验证,性能的验证。
高薪的测试岗位,莫过于测试总监和测试专家了(他们的月薪五位数,甚至有的人逼近六位数),他们会被问到哪些接口测试的问题呢,我简单问了下GPT,如下是它给出的答案:

GPT对这些问题的答案都可以进行细致的回答和分析,它为我们展示了高薪测试攻城狮回答接口测试相关问题的时候,是从几个目标出发的,
企业老板视角,客户视角
团队高效能产出
产品质量更好
问题及早暴露
结果及早响应
数字化,未来化
那么高薪测试攻城狮们在回答接口测试类的面试问题,到底回答的是什么呢?
高薪测试攻城狮们在工作中做接口测试,到底和普通测试攻城狮做接口测试有哪些区别呢?
人之间最大的差异在于思想上,而不在于财富、地位或职业。- 卢梭

1.合理的接口测试计划和方案
行动代替不了思考,但没有思考的行动再多也是盲目的。-歌德
在有多个产品业务线多个API需要测试时,老板总希望研发速度又快,产品服务质量又好,过程中用的人又少,那么在有限资源和时间的条件下,必定要做出科学的计划和方案,选择优先级是非常重要的,这样可以保证测试能够高优先级的API测试留出足够时间和测试资源。
以下是一些可能应采用的策略:
根据业务价值进行分类:根据API提供的业务价值将其分为必要核心、主要和次要组别,并确保先测试必要核心的API。
根据预期贡献发布周期进行排列:决定按哪种顺序进行API测试的另一个因素是其与项目的开发周期关系。 优先关注将在程序开发周期的早期自行完成, 并送往产品经理和客户验收评估结果的任务,便于及时取得有效反馈并根据记录的时间来资料优先级排序。
关注经营成本优化: 平衡所有当前或者未来需要考虑的风险因素(比如人力成本,研发成本,市场推广成本,管理成本,监管成本等等)并最小化影响。
2.搭建并维护接口自动化测试框架
技术的本质在于正确地运用工具。- 亚伯拉罕·马斯洛
为了最大化实现质量保证的价值,测试和质量管理者需要结合公司的需求、测试团队的投入以及预算等因素进行综合考虑,来进行接口测试框架的设计和组织,选型。
一个合适的接口测试框架一般都具备如下特点:
合适的工具和技术:接口测试有各种各样的工具和技术可选,如Postman、RestAssured、SOAPUI、Jmeter等。选择合适的工具和技术是建立一个高效、稳定且易于维护的接口测试框架的关键。
设计良好的测试用例:测试用例应该覆盖较高的代码路径,并包括预期结果。这有助于确保API正确执行并为开发人员提供更好的错误诊断信息。
自动化测试执行与集成:自动化测试有助于减少测试时间,提高重复性,也可以与持续集成(CI/CD)流程相集成,从而在代码提交时触发测试以及快速清除衔接问题。
测试报告与跟踪:能够记录每个测试运行的详细数据和结果,从而可以及时修复问题并及早发现系统更大规模的相关问题。
支持易于维护的代码库:框架必须支持易于维护的代码库结构,让所有成员(测试和开发)保持参与, 并充分发挥他们的能力来维护。

3.MOCK工具或平台,数据服务
做多维度、灵活性、可注意的系统设计,从而减少重复劳动。-Tim O'Reilly他是Web 2.0热潮运动的先驱
为了提高测试的灵活性和可重复性,减少开发周期、缩短测试时间,测试和质量管理者可以组织搭建MOCK工具或者平台。
当开发依赖尚未完成时:Mock 测试可以在很早期就可以开始,而不必等待所有后端代码都构建完毕。
为了减少运行时间和成本:Mock平台可以构建虚拟数据,快速模拟 API 响应,显示预测流程,不去过多地依赖后端;方便调试,能够有效缩短执行时间、降低开发成本和测试所需的资源消耗。
提高可重复性: 使用 Mock 数据来替代数据库操作等动态数据源响应等各种实际情况
方便集成测试:要结合其他服务进行接口测试,如果其他服务暂时还没有准备好,开发人员可以(使用基于 REST 应用程序接口的客户端或类库)与Mock 进行模拟和探索。
可以快速反馈:Mock 可以帮助开发和测试人员更快地得到反馈。
4.开发接口文档,编码等的确定性规范
始终要在所有问题上坚持秩序和纪律。这些事情形成了世界的基础,现代社会建立在此之上。-亚历山大·塞尔金(俄诗人)
为了提高研发团队的生产效率和工作流程,使API的研发过程能够高效持续集成,提高开发和测试团队的质量、并且减少人员的测试时间,测试和质量管理者有责任监督和推进研发团队的接口文档以及编码的规范和落实情况
接口文档规范:
包含对API调用方式、参数(规定参数格式)、返回值错误码响应码(结构)描述等内容详细说明
编码规范:
命名规范,使用有意义的变量、函数和类名称。命名应该具有可读性
缩进和格式化:遵循固定缩进、空格和换行符的标准格式,以增加可读性可识别
错误处理规范:正确处理异常情况,在错误发生时及时返回错误消息,避免程序崩溃。
安全性规范:对敏感数据进行适当的安全性配置,并遵守最佳实践,包括使用SSL/TLS加密协议,防止SQL注入攻击,不存储明文密码等
API URI 格式规范:URI结构要简洁、优雅,符合 REST 规范;版本控制、查询参数格式、数据互转通道一致性等都要考虑到灵活性与扩展性问题,URI组成要能够清晰表达信息传递模型,并且保持描述性质(即更容易反映技术而非目标)的方法。
响应格式规范:响应格式应该具有清晰性,可读性强,宜支持更广泛的消息采集方式。例如JSON、XML等。

5.对开发的自测要求
如果你用心做好每件小事,大事会自然而然地来到你的身边。-马克·吐温
为了保证研发团队能够早期发现和解决问题,排查程序错误和异常情况,减少后续集成和系统测试出现问题的机会,减低修复成本和风险率,提高软件质量的稳定性,加快交付,也节约了测试资源。
测试和质量管理者有责任定义和监督研发团队的自测规范和落实情况。
单元测试:编写单元测试代码来检查一个函数,类,模块。
集成测试:执行集成测试严重API的功能,性能,安全等。
端点测试:请求各种参数值验证业务逻辑,验证响应内容正确等。
回归测试:验证基础功能点的正确
负载/压力测试:对性能和稳定性进行测试,例如应对并发请求数、响应时间等的变化等问题
安全性测试:识别任何潜在的漏洞或安全威胁。例如,SQL注入、XSS跨站脚本攻击或密码攻击测试等生产中常见紧急问题
6.严格实施接口测试的冒烟测试准入要求
竭尽全力做好每一次任务,做出最好的结果就能成为你生活中板上有钉的硬杠子。-摩根·弗里曼
测试和质量管理者通过规范冒烟测试的准入要求,可以确保研发团队提测产品的质量,提前暴露风险问题,避免风险问题后置。
常见的准入标准如下:
开发完成度:确保开发完成95%以上的主要接口。
代码本地/CI集成测试执行:所有提交的更改都必须在集成测试环境上成功通过进行运行,
环境准备:测试环境在计划时间节点已就绪可测试。
关键路径测试:核心业务接口能够正常测试。
安全性测试:与安全相关的基本功能,身份验证和访问控制正常
性能测试:确保接口当前承受最高请求数等指标,已经通过了基本的压力 / 负载测试。

7.对接口测试评审过程的控制
通过得到反馈和自己对自己的改变来实现成长。-Bill Gates
测试和质量管理者为了确保接口测试的覆盖面和测试目标,提高测试质量,并降低后期修复问题的成本,可以进行各种评审活动达到目的。
接口文档评审:通过对接口文档进行评审,可以监督研发团队的文档规范实施情况。同时也能够帮助测试人员准确理解如何执行接口测试和获取API的对象或使用方式、数据格式和参数要求等细节。
测试方案和用例评审:测试用例评审通常由多位团队成员执行,比如业务架构师、开发人员、测试人员和其他团队成员。查缺补漏。比如测试数据,预期输出等。
环境配置评审:测试环境,生产环境的各种必要配置信息。
8.CICD,自动化测试和可重用测试脚本
把时间用到刀刃上是最经济的投资。-特里-路易斯·科尔斯
机器不能代替人类创造的东西,但它可以将人们从重复性的劳动中解脱出来。-约瑟夫·奥姆
测试和质量管理者为了提高测试团队的接口测试效能和产品质量。可以通过持续构建和测试实现高质量可靠性执行环境,运用可重用的自动化测试脚本验证接口逻辑,确保代码变更时及时更早的发现问题。
选择合适的框架或者工具:根据产品特点,研发模型,测试团队情况,选择合适的接口工具进行测试。
设计和编写可重复利用的测试脚本:包括各种数据输入边界测试及传输方式的差异处理验证。
持续集成:在自动化测试周期内每天运行多次,获取运行结果和程序完成情况。确保测试过程稳定,结构明确,获得更加全面的错误跟踪、质量评估。

9.接口的流量监控和分析
客户永远处于第一位。是他们推动了你的业务,指引你朝着正确的方向前进。-杰夫·贝索斯(Jeff Bezos)
为了优化交付流程,解决项目中的隐患风险防止重大安全事件发生,研发团队需要用工具或软件平台来监视API的各种数据,比如包传输,流量识别、对异常情况和反欺骗行动捕获。缩短开发人员反应时间和处理周期,降低复杂性,提高API的可靠性、稳定性和安全性。
监控的目标有如下4点:
发现问题:接口测试监控可以自动化地发现各种质量非正常指标,检测各种错误、中断、超时等API异常情况,并及时向开发者提供详细的报告和可重现性质数据等。
验证质量:接口测试监控也可以定期地、自动地验证关键的API性能指标、数据安全和数据完备性等,帮助企业形成端到端的质量意识,确保每次发布都可以符合预期质量标准。
节省时间/资源减少风险: 及时响应和调整给予深度模拟压力测试机制;提高交付质量,增强项目管理条理以节省更多的时间和人力成本,减少由于错误导致无法在预算和时间要求内按计划执行的风险。
数据策略调整:基于不断收集数据的结果,改进用户行为特定目标相关的测试方案,并快速对影响到质量或者应用稳定性的问题做出修复、反馈或迭代调整等有效管理信息资源方法。
测试和质量管理者根据如上目标,可以参与进行计划,方案的制定,实施和验证。
所以测试工程师要具备如下能力:
使用监控软件来收集各种技术指标,如CPU 利用率、内存利用率、存储使用效率、网络吞吐时延。
使用第三方软件监控会话有效行为等有价值的运营数据(对收集到的数据进行实时/批处理预处理,报表展示和数据挖掘以获得最佳的数据策略和生产模型)。
使用监控平台服务得到API调用计数(得到总调用数,调用并发数,调用成功失败数等,实时监测和深度分析API调用质量状况)作为性能测试计划的参考数据。
实施标准化规约流程,将所有API按功能分解,并识别出未妥善使用或者目前无效的API,实施低效退出,降低系统的复杂度,提高系统稳定性和安全性(若该API系统中存留一定漏洞的API,如密码不安全验证,授权认证错误处理不完美等就危及企业未来的安全配置要求)。
10.测试团队资产库建立
一个成功的团队需要不断反思,及时总结经验教训,并持续改进工作方式。-斯蒂夫·乔布斯(Steve Jobs)
所谓铁打的营盘,流水的兵,不同的产品业务研发团队,都有积累下来的测试经验和业务积累,测试和质量管理者为了提高和稳定测试团队的成熟度,不因测试成员的变化而变化,必然要建立测试团队的资产库。
接口测试用例评审list:API测试场景是关注数据是否得到服务器正确处理以及返回结果与预期相符合。相比GUI测试有更多的测试场景。
接口测试方案,用例编写指南:骨干需要平时定期更新测试指引,测试成员根据方案和指南的指引细节,便可编写出符合常规规范的测试用例,节省了时间,提高了效率。
接口测试BUG分析库:接口测试期间,以及生产运行期间发生的bug,通过分析可以归类错误原因(参数传递问题,认证授权问题,逻辑错误,性能问题,配置问题等),测试团队据此进行测试设计的完善,编写测试设计指引提高测试覆盖率。

你的职业规划是什么?技术执行者和高薪管理者的区别是什么?
很多攻城狮在茫然,到底是走管理路线,还是技术路线,其实技术执行者和高薪管理者在团队中的角色和职责会有所不同,
技术执行者通常指那些负责项目实施和开发、编码、测试等技术环节的人员,他们通常具有较深厚的技术功底和专业知识。他们常常需要处理一些专业性较强的问题,侧重于技术本身,更注重解决方案的具体实现。他们通常被要求具备优秀的技术能力和精益求精的工作态度,以确保项目顺利完成。
而高薪管理者则主要负责组织和协调整个团队的工作,其关注点更在于如何将团队成员的工作有效地协调起来,使得整个团队达成商定目标。他们通常拥有出色的领导力和管理经验,并擅长规划、决策、沟通协调等方面的工作。而对于技术问题,则通常会与技术执行者进行联系讨论,协助解决问题。
前者更偏向于技术实施、解决具体问题,而后者则更注重整个团队工作的协调和管理。到底选择哪条路,需要分析个人性格特点和个人潜力来决定。
作为一名领导者,你不能只在头脑中梦想一个伟大的团队。你必须将他们召集起来,并与他们一起实现这个梦想。-菲尔·杜曼(Phil Dumphy)
高薪管理者的目标是什么?
如果我的职业目标是作为一名高薪技术管理,那我应该怎样超目标走近呢?首先要关注他们的工作目标是什么。
研发团队中高薪管理者的主要工作目标可以概括为以下几点:
实现业务目标:高薪管理者应该明确把握企业的策略和战略方向,将其转化成具体的研发目标,以实现企业的业务目标。需要协调各个团队之间的合作,控制项目进度和管理资源,来确保研发结果符合企业预期。
提高研发效率:高薪管理者需要关注团队成员之间的沟通、协作和互动情况,及时了解团队的研发进度、识别问题和风险,并采取相应措施提高研发效率。他们也应该引导团队成员在研发过程中注重创新,遵循最佳实践,达到高科技产出效益。
管理人才:高薪管理者应该关注团队成员的专业能力和发展方向,制定培训计划,帮助每一位团队成员不断提高自身技术水平及职业素养,以更完善地完成公司的业务需求。
管理项目质量和成本:高薪管理者需要监控团队成员的工作进度和项目成本,确保项目按计划完成,提高项目的成功率、质量和客户满意度。同时,他们也需要关注实施过程中可能出现的问题,进行有效的风险管理。
所以,高薪管理者的工作目标不仅是 业务目标和研发进度的达成,还包括了人才培养、质量成本控制 等方面。高薪管理者需要指 导和领导团队,发展新的方案来提高效率,并始终快速地对潜在问题做出反应和解决 。

其次要关注技术管理的能力模型,以及如何进行锻炼。
高薪技术管理的能力模型主要包含以下几个方面:
技术专业知识:技术管理者不能脱离技术岗位的实际工作,需要对所管理的领域有足够的技术专业知识储备,以便更好地理解和评估技术组成员的工作、给出建议或者根据业务需求提供技术支持。
领导能力和团队合作:技术管理者需要具备优秀的领导与管理能力,能够向下带领团队,并促进团队成员间的协作沟通。同时,他们也应该懂得如何与其他部门进行联络和交流,推动整体团队的高效运作。
项目管理:技术管理者负责项目的计划、组织、协调、控制以及风险管理等任务,必须对项目相关技能、工具、方法略有熟悉。熟练掌握此项技能可以帮助团队在一定周期内完成任务和质量控制。
创新能力:高薪技术管理者需要具备不断学习、思考和创新的精神,理解市场上最新的技术动向和趋势,进行迅速调整和应对。通过创新确定战略性的方向可以提高公司竞争力。
交流能力:在横向与不同部门进行沟通、展示团队成果、破除技术知识隔阂时, 技术管理者需要拥有良好的口头和书面表达能力,以便在促进自己管理目标计划的同时也维系好彼此的关系。
总之,高薪技术管理者需要全面而深入地理解当下以及未来行业所涉及的各方面问题,并能够合理调配人员和资源,以及推动项目的顺利实施。同时还要会运用创新和优化策略,以及快速适应环境变化等多项任务。
最后,想要成为一名高薪测试工程师,光有技术和经验是不够的。一个优秀的面试表现往往能成为加分项。而这些表现,除了历练自己的技术实力以外,如上提到的高薪岗位能力模型中的关键点,只有在项目实践中拥有开阔的视野与多样的经历,才可以帮助我们更好地锻炼个人综合素质。
不管怎样,无论是针对面试官提出的问题、应聘者谈及经历或是态度等场面,用大量真实数据、优质项目、自己的底气以及恰当的棱角, 都可能会对得到了心仪的薪资、职位起着关键性作用。
