你好 我是懂 java 的测试
最近辅导简历,有同学向我反馈,自学过接口自动化、没有落地接口自动化项目办?还有一下同学落地实践过自动化,但是仅仅只是停留在会用,没有那种深层次使用。
我给出的建议有两个,一个是速成的方式,多看面试题,另一个就是长期落地实践,日积月累。
今天就先说说速成的方式,多看面试题,通过面试题去驱动自己对接口自动化的思考和积累,这是一种很好的方式。
很多小伙伴都问,为什么面试官问的问题都是偏细节的东西?我想说因为现在的测试简历 90% 都说做过自动化,又加上大环境不行,你不写接口自动化可能连面试机会都没有,我面试过很多人,简历上说熟悉接口自动化,面试一问才知道,要么就是纸上谈兵式的自学,要么就是做过,但是做的不深,仅停留在表面,所以说面试官只能通过一些细节问题,去 pass 掉这些人,留下自动化测试的高手。
下面就列举几个接口自动化项目常见的问题。配合 我上篇文章《价值 25k 测试工程师面试题及其答案分享 》阅读,效果更佳,在此基础之上,我又补充了以下几个经常遇到的相关面试题
1.你们公司没有通用的接口自动化框架吗?为什么还需要你们部门来搭建这套?
答:公司的接口自动化是有的,但是调研过程中,发现比较难上手,而且配置繁多,遇到问题还得自己通过代码层面去定位问题,自己搭建的自动化符合自己业务私有定制开发,上手快,门槛低,效率高。
2.效果和收益? 接口自动化回归过程中有没有发现什么问题?
答:项目组采用的敏捷开发模型,对效率要求很高,原先回归需要 2 个人半天时间,自动化测试以后,只需要十分钟左右,大大缩减了回归时间。
自己编写的自动化 case,发现了 3 个测试 bug,有效避免了线上损失,
注意:自动化回归发现的 bug 一定不能太多,太多了,只能证明集成测试或端到端测试质量太差,发现的 bug 可以从以下几方面说:开发私自修改代码,没告知测试回归。代码解决冲突导致代码丢失、功能丢失等等。
3.你们持续集成怎么做的?
答:百度看看 Jenkins 集成自动化项目。
4.你们自动化项目你个人觉得还有哪些不足,怎么去提升?
答:可以使用封装、继承的方式,让代码具备更高的复用率;如果测试用例比较多且相互独立,执行效率低,可以说采用多线程的方式,并发执行,提高执行效率;如果你对前后端比较熟悉,也可以说,打算做个测试平台,降低学习门槛,让更多不了解代码的小伙伴,快速上手使用。甚至,你也可以说,做成测试平台以后,打算向其他项目组推广。让公司更多的小伙伴上手自动化项目。
答:python 和 java 都有天然的断言框架,至于是否要断言数据库,看具体项目,有些插入数据接口,没有查询的接口,这种情况只能做数据库断言。
6.java 中的 testng 是什么?有哪些注解?执行顺序知道吗?
答:TestNG 是一个测试框架,其灵感来自 JUnit 和 NUnit,但同时引入了一些新的功能,使其功能更强大,使用更方便。TestNG 设计涵盖所有类型的测试:单元,功能,端到端,集成等。
注解执行顺序 @BeforeSuite->@BeforeTest->@BeforeClass->{@BeforeMethod->@Test->@AfterMethod}->@AfterClass->@AfterTest->@AfterSuite
除此之外,还有 @DataProvider @Parameters 不仅仅得知道名称,要大致知道注解的作用是什么,没办法,只能死记硬背,面试官只能通过这种细节来看面试者,是否真正写过自动化或者做的自动化项目能达到什么高度。
7.集成了 allure 报告对吧?那你能告诉我,能看到哪些页面细节?
答:自行百度
8.异步接口了解过吗?异步接口断言有遇到过吗?怎么解决?
答:同步需要等待所有步骤执行完了才能继续往下执行,异步只需要发起调用 后就可以继续其他逻辑。
自动化项目中,通过循环 + 计数器去处理异步返回接口,伪代码如下
import org.apache.commons.lang3.StringUtils;
/**
开启循环 1 次
开启循环 2 次
开启循环 3 次
开启循环 4 次
异步接口获取最终结果成功!!!
循环查询打印的日志,
9.前置依赖接口,怎么提高稳定性?
答:重试,但是要限制重试次数和幂等性。
日常还有很多关于「测试」技术、薪资、面试套路方面的交流,如果你也有一个「加薪」梦,欢迎加入我的公众号 懂 java 的测试,大家一起升职加薪。免费简历修改和面试指导。