首页天道酬勤接口自动化测试面试题(煤炭行业发展现状及趋势)

接口自动化测试面试题(煤炭行业发展现状及趋势)

admin 12-02 06:32 256次浏览

自从2017年6月开始接触自动化,已经两年多了。从17年接触UI自动化(unittest selenium)到18年接触界面自动化(unittest requests),再到18年编写自己的自动化平台(后台是python的平台,前端是element vue,没有第三方自动化框架),我一直在不断学习和成长,加深了对自动化测试的理解。在这里,我将总结我自己对自动化测试的理解。

首先,我们来说说很多gtdj,他们只有不到一年的实际自动化经验,停留在kkdxrz复制的demo甚至kkdxrz复制的代码上,不知道问题出在哪里(上帝忽略了这一点,但我的gtdj只是说说行业现状)。相信很多人都是从kkdxrz复制uniitest(以下简称ut)、pytest、testNG甚至RF(robotframework)说自己精通自动化使用。你真的明白。作者使用python语言(不要轻视其他语言,只要你有能力,任何语言都可以自动化)。现在只问几个和python自动化相关的问题,很多都是企业在实战中会遇到的场景或者是企业领导的需求,也包括作者采访的口头和手写问题。

让我们从一些基本问题开始。1818年1月,作者使用ut se进行UI自动面试提问,面试官提问如下(注:如果不写答案,请自行做百度或查询信息,这些基本问题留在群内会被轻视。很多人可能会在以下内容中感到不舒服或blx。如果你觉得不舒服,请自觉关闭本页,请绕过喷嘴,没必要和你争论):

Q1:

请说出硒常用的八种定位方法。

Q2:

请描述硒的xpath结构。

Q3:

请解释为什么不建议使用xpath。

Q4:

使用xpath找不到元素的可能情况有哪些?

注:前四题只是最基础、最基础的问题。如果前四个问题无法回答,直接进入下一个问题。Q5开始的问题是确定你有基础,然后问更深层次的问题,确定你对自动化的理解。

主体

现在让我们正式开始提问:

Q5:

你说你用过ut,请描述一下ut负载用例为什么以test_开头(这会测试你对自动化框架的熟悉程度,有领导会问你,为什么测试用例都是以test开头?你:这就是这个框架的设计。领导:不行,必须以我们公司名称的缩写开头。你:领导:你明天不用来了。)

Q6:

ut使用什么规则来执行用例?

等等什么?很难吗?这才刚刚开始~ ~ ~天啊。整天说自己熟练甚至精通自动化,连自动化框架的原理都不知道?你怎么敢说你精通自动化?如果让你二次开发自动化框架,优化执行效率等等,你是不是要上天了?你是来应聘自动化工程师这个职位的,不是一个有一点点歪位置的黑匣子~~~ ~(有人说钱不到位,你能力不够,我怎么给你钱?不要拿回订单。阿里P7的帖子会给你一年100万元的总套餐。你能像P7那样做吗?这是事实。有能力才有谈判的资本。虽然ut在一线鄙视链,但是我在kkdxrz上看到一个帖子,改变了ut源代码,执行效率提高了几十倍。你有那个能力吗?)

好吧,基本上,如果你能看到这里,你可以确定你不是blx或喷枪。现在,我给大家讲讲我今年7月面试过的几个工作。这些工作真的需要你去做自动化。坐标杭州,起薪15K,7月面试5天。由于学历的限制和能力的不足,我一共得到了8份offer。这些工作的面试问题如下:

Q7:

你在上一家公司维护过多少自动化测试用例(看简历上写的UI/API/APP中的任何一个)。100以下基本不出镜。如果你不能回答以下问题,你的评分是初级自动化。

Q8:

自动化用例,一次执行所有用例需要多长时间(测试框架设计时考虑执行效率吗)?如何解决用例之间的联系?如何调试一个用例或者选择几个用例来执行?如果测试用例的数量少于100个,如果测试用例的维护量增加5倍(100个或更多的两倍或3倍),你有什么计划来优化执行时间和效率?

Q9:

如果测试环境迁移了(比如从本地环境迁移到阿里巴巴云),用例中是否需要大量修改测试数据?(可维护性)

Q10:

编程问题:

Java一般会问一些关于线程安全、数据类型的差异、设计模式等问题。作者是python,所以我只写python经常问的问题:

Python列表和元组除了不可变有什么区别?

Python列表和字典有什么区别?

Python生成器和迭代器有什么区别?

请描述多线程、多处理和协同处理之一的工作原理。(后续提问三者的区别主要是听听你对它们优缺点的理解。

度)

请描述Python的垃圾回收机制以及内存管理

Q11:

数据库相关问题(太泛,从基础理论到手写语句,不写了):

多刷kkdxrz,多看基础就是了。

Q12:

Linux基操

Q13:

网络相关(http/https)

Q14:

对接CI、CD,CI同时调用2个甚至多个环境的用例,用例数据会不会错乱。

Q15:

团队问题,这里重点描述一下,入职的岗位除了大厂高级自动化工程师以外,都要求带黑盒组一起进行自动化,所以团队问题会被着重提问:

编写用例的复杂程度?即一个用例需要多少行代码?(其实听到你回答多少行代码的时候,你已经降了一级,面试官更想要的是一个不懂代码的小黑盒也能轻松上手。)

组内用例的同步问题,如果N个组员同时编写自动化用例,组员间的用例同步问题怎么解决。

如果使用你的自动化,组员需要具备哪些能力和知识?如果要维护你的自动化,维护人员又要具备什么能力?(主要是看你的自动化是否简单易维护,面试官要的是哪怕你人走了,你的代码依然能稳定运行,维护也尽可能简单,而不是你一走,自动化就废了,这样的自动化毫无意义,你面试的成功率也会大大降低,稳定和易维护,至少得满足一个条件。)

以上,就是笔者7月面试的问题,看完这些问题,你真的还了解自动化么?有甚者甚至与笔者争论过使用工具做自动化,例如postman/jmeter,诚然,都可以做,笔者只有一个问题,你维护过下一家公司别人做的工具自动化么?没有的话,先去维护一次,体验一下什么叫一个头三个大的感觉,工具始终只是一个工具,笔者混迹在一些测试群里,每个月都能收到N个gtdj问这些工具要对数据进行md5/rsa加密,要base64编码解码,要怎么做?笔者只能说一句,自己写代码,随后会遭到不少gtdj怒喷"我要是会写代码,我还用毛线工具",笔者:呵呵。还有gtdj还在问,jme数据关联怎么做?jme正则提取token怎么提取?连自己解决问题的能力都没有,更不用谈自动化了。

下面笔者讲述一下笔者自己对于自动化的想法和感受:

1、UI自动化在很多小公司用于简单的回归是可以的,简单的回归其实单纯写几个小脚本,和你用什么po+ut+关键字驱动之类的,成本上没有多大区别,真正需要UI自动化的公司,起步也得有几百人上千人,且满足需要自动化的部分已经足够稳定的场景,这种规模的自动化,大多数人涉及不到,维护成本高,受环境影响因素大也是很多公司放弃UI自动化的原因,大环境因素上,UI自动化已经开始被AI自动化和图片识别自动化代替了,各大厂内部已经开始流行AI自动化和基于图片识别的自动化,例如网易开源的airtest,只需要截图即可生成自动化用例,脚本的维护也越来越简单。

2、App自动化和UI自动化差不多,app比ui多一个兼容问题(混合开发),维护同样非常复杂,单纯的selenium,appium,ua2实现自动化,要解决的问题非常多。

3、现在很多中小公司流行接口自动化,以及接口测试左移(在接口文档出来之后,后端开发完成之前,搭建mockserver,实现前端联调)接口自动化的执行速度快,回归效率高,是目前中小公司主流的喜爱。但是接口测试要想做好,对返回结果的断言是个非常高的要求,设计人员的能力和知识决定了断言的健壮性,对于设计人员的能力要求相对较高。

4、大厂目前主要流行的是拨测、图形识别、AI,拨测即录制和回放(很多gtdj看到这估计笑了,这不是早就被淘汰了么,笔者:呵呵,此操作非彼操作),笔者大概了解过阿里的doom系统(没有仔细研究,能力有限,说的不对的请忽略),通过中间件录制线上的流量数据储存起来,在被测试环境进行重放操作,以验证本次修改是否对线上数据产生影响,这中间涉及非常多的技术实现。图像识别可以参考airtest,AI测试目前几乎没有流出,测试之家里有一些理论文章可以参考。

5、性能自动化就不写了,笔者的能力有限,连性能测试都不敢说会更何况性能自动化。(要是会个工具随便打个压就算会的,当我没说,打个压看个报告啥的还是轻松的,代码写个性能脚本问题也不大,性能测试的精髓在于分析瓶颈、系统调优。)

写在最后,17年UI自动化刚兴起的时候,会个自动化脚本能评级到中级工程师,18年中级自动化需要自带框架了,到了19年,会个自动化脚本连初级都算不上,,用第三方框架的基本上要有成熟的方案了,19年的薪资高一点的测开岗位都要你会写测试平台了,19年测试平台已经开始流行了,技术行业,更新就是这么快,不学习,不进取,仅靠kkdxrz那点基础的教程,在20年21年22年只会越来越难走,年纪越来越大,能力却没年轻的强,竞争力越来越弱,才是你跳槽涨薪的绊脚石,总有一些工作年限久的人,自以为自己经验唠叨的向日葵而对工作年限低的人嗤之以鼻。

笔者面过一个8年工作经验的人,只有一个总结,他的8年经验,只是在重复他第一年的事,只不过做的更熟练了一点,但是他又没能把第一年做的黑盒做到很好,这是很多zxdfg的常事,笔者只能送一句,要么把黑盒做好,要么发展自己的能力,大中华的行业情况就是如此,往后N年,好自为之。

请关注+私信回复:“学习”就可以免费拿到软件测试学习资料

C语言中数据怎么存储进内存C++lambda表达式如何使用C++构造析构赋值运算函数怎么应用计算机毕业设计ssm汽车租赁管理系统n5s69系统+程序+源码+lw+远程部署
初中数学易混淆知识点(初中数学综合题) python3(python gui)
相关内容