• 0
  • 4
分享

1、你的自动化测试是怎么实现的?(必问)根据自己的情况说吧,有些会设计的框架细分目录后,分别实现了什么功能?

接口自动化 python+unittest+ddt+HtmlRunnerNew

web自动化python+selenium+pytest+Allure


2、你对 selenium 二次封装的关键字,是怎么封装的?挑了一个等待元素的关键字问设计了哪些参数?


3、简述一下三大等待吧?

①显性等待:WebDriverWait,针对元素设置的等待时间,并只针对该元素有效,用来等待某个条件满足,默认会每隔 0.5 秒去找元素,检查是否满足条件,超时报异常。(面试官问的很细这个间隔时间是通过什么参数去控制的,当时记不住没答出来,回来看了,才知道是poll_frequency=POLL_FREQUENCY)

②隐形等待:implicity_wait,通过 driver 对象给所有元素设置的全局等待,在设置的时间范围内一直不断找元素,超时报异常。

③强制等待:sleep,不管什么情况都需要等


4、Web 自动化编写了多少用例?执行一次需要多长时间?遇到过什么问题?针对这些问题你是如何解决?

编写了 xxx 多条(因为我的项目时间比较长,有的面试官会说这么多,我说系统的功能较多, 而且用例的颗粒度涉及的比较细较细),用例和时间根据自己实际写吧,切记 web  自动化需要等待时间,时间不要说的太短?遇到问题,一般是 

1.元素难以定位,比如一些动态的元素,改用 CSS 定位;

2.脚本不是很稳定,有些用例经常失败,但实际并不是 BUG,增加等待、改用相对定位、加入失败重运行、减少用例的依赖保证独立性、创建环境和清理环境走接 口.....


5、你做自动化的时候有没有遇到什么比较难解决的问题?(问题和上面的差不多)

①元素难以定位,比如一些动态的元素,改用 CSS 定位;②脚本不是很稳定,有些用例经常失败,但实际并不是 BUG,增加等待、改用相对定位、加入失败重运行、减少用例的依赖保证独立性、创建环境和清理环境走接口.....


6、如果你做接口测试,接口返回成功,但是实际数据库却没有相对应的数据?你觉得有可能是什么问题?如何定位?

① 如果此接口未对数据库数据进行操作,那个就可以忽略

② 如果此接口是修改数据数据,接口返回成功,而数据库中数据却未变更,那么说明此为 bug

定位:与接口文档进行对照,如果数据库校验的内容与接口文档不一致,这可以定位问题


7、性能测试?(性能测试必问,每一个都问!不会的话可以看一些文章,说有了解过能聊一下就行了)简述一下你做过的性能测试项目如何开展的?重点关注哪些性能指标?会性能调优吗?

性能测试包含:负载测试、压力测试、并发测试.....

定义:在被测系统上不断增加压力,直到性能指标(如响应时间)超过预期指标或者某种资

开源工具 jmeter:开源免费,自由,操作较简单,能辅助完成日常的一些测试工作


8、如何需要模拟死锁的情况?你是如何模拟的?(这个没聊到性能测试一般不会问)

我的回答仅供参考:服务器在真正的压力下,慢慢增加并发用户数、和请求次,CPU 和内存资源的利用率会提高,达到峰值后,超过并发极限值后,CPU 或者内存资源会出现死锁的情况。


9、你除了使用过 unittest 和 pytest 之外有了解过其他的自动化测试框架吗?又运用到自己的项目当中吗?和你现在的框架对比?有什么优点?

Httprunnner 或者 RB,后面的问题大家根据自己实际情况去想吧


10、你会设计测试策略和测试方案?你是如何设计的?

测试策略:数据和数据库完整性测试、功能测试、用户界面测试、性能测试、安全性和访问控制测试、配置测试、安装测试;其实测试策略和测试方案是差不多的意思


11、测试计划你是如何设计的?主要包含哪些内容?

测试计划主要根据项目版本计划去设计;主要包含:测试的范围、质量目标(用例覆盖率、和缺陷发现密度)、测试提交的文档、测试进度(测试开始时间、实际开始时间、结束时间)、测试的准则(启动条件、结束条件)、测试阶段资源(人力资源、测试环境准备、测试工具)、系统风险、优先级(测试资源所需不足、测试业务及技能不足)、项目的控制、详细测试方法、测试规程设计


12、安全性测试做过吗?

这个绝大部分面试官都会问,目的是看你的测试的广度,不会不要紧,了解一下漏洞扫描和SQL 注入、xss、css、php 代码注入 cookie 篡改,能聊天即可,实在不会就说不会吧


13、Webdriver 的原理(被问了两次)

由于客户端脚本(java, python, ruby) 不能直接与浏览器通信, 这时候可以把Webdriver 当做一个翻译器,它可以把客户端代码翻译成浏览器可以识别的代码(比如js).客户端(也就是测试脚本)创建 1 个 session,在该 session 中通过 http 请求向Webdriver 发送请求,Webdriver 翻译成浏览器懂得脚本传给浏览器,浏览器把执行的结果返回给 Webdriver,Webdriver 把返回的结果做了一些封装(一般都是 json 格式),然后返回给客户端,根据返回值就能判断对浏览器的操作是不是执行成功。


14、接口发生异常你如何去分析定位问题

发生异常了,查看是数据返回有问题,还是数据库数据未变更,多种情况去分析


15、你是专职做自动化吗?自动化和功能测试时并行进行吗?占比多少?

不是,功能和自动化都做,串行,先功能测试后自动化测试,占比 80%功能,20%自动化(二八定律),自动化测试比例高于功能测试,面试官会很怀疑。


16、黑盒用例设计技术,及在你工作中的应用场景?

等价类、边界值、错误推测法、场景法、因果图、判定表、正交分解。我举例我工作中设计缴费模块为例,用比较多是等价类、边界值设计技术。


17、你们公司用什么前端框架,后端技术?前端人员、后端开发、和测试的比例是多少?

前端用的 VUE,后端用的 java;人员比例 2:3:1


18、在数据库中插入一条重复的数据 100 次(这个问题没回答上)

使用jmeter轮询100次数据插入请求


19、现在有个部门表,需要你查询出入职最早,排名前 10 的员工,你怎么查?

Select  员工名 from  部门表 order by  时间 limit 0,10 (MySQL 数据库用这种)

select 员 工名 from 部门表 order by  时间 and rownum <=10 (oracle 用这种)


20、Pytest 的参数化如何实现?接口自动化的参数你是如何实现的?说说你的想法

Re 模块+sub 方法去替换


21、如果测并发测试的时候,并发 100 次,前面 99 个通过了,其中有一个失败了,状态码返回 500?你觉得会是什么问题?你怎么分析定位问题?

大佬的回答:1.可能是服务器的问题,并发到第 100 个,把服务器弄崩了,服务器内存,性能需要提升;并发 90 个试下。

22、你说说你在功能测试这块比较擅长什么?举个例子这个各取所长吧


23、如何使你的接口自动化测试用例直接跳过前面几条,直接执行第 7 条?

1、可以在 Excel 创建一列,指定是否跳过,然后在用例时,过滤掉这些用例

2、使用条件判断,通过 case_id==7 来决定是否执行

3、使用 pytest 中的 skip 也可以跳用例,具体看官网


24、如何使你的接口自动化脚本,对于同一个请求让同一个用户请求多次?

也可以在 Excel 中设置相关执行次数的字段,在 ddt 数据驱动时,使用代码来控制执行次数。或者使用 pytest 来代替 unittest


25、如果你遇到了这种情况,原迭代版本计划的测试时间是2 周,测试时间是7 天,后来开发开发了12 天,留给你测试的时间是 2 天,这种情况你会怎么办? 

我的回答仅供参考:①对整个项目流程和测试流程提出改进,需要对测试的项目进行风险评估和风险应对,如果此方法不行;②可以将整个项目的功能划分为模块,开发开发完后,单元测试通过后,告知我们测试重点,和最可能出现问题的功能,我们针对这个功能重点测试,单个模块测试完成后,开发完成了整个版本的开发,提测时就可以重点测涉及业务流的模块,减少测试的时间;③如果还不行,那只能提前和领导反馈沟通,增加测试人员的投入,去弥补时间的不足;

大佬的回答:1.测试进度变慢,无法保证在预订时间内上线。

如果需要在预订的时间上线,必须需要测试任务或者测试版本的达到某某要求或者某某标准。

如果无法在预订时间内上,给相关人员评估无法上线的原因和风险,输出测试结果。


26、selenium 中 hidden 或者是 display = none 的元素是否可以定位到? 

不能

 

27、如何提高 selenium 脚本的执行速度?

我和 web 自动化测试关注的并不是脚本的执行速度,而是脚本的稳定性,要以稳定性为主的情况下提升执行速度;首先分析脚本的执行速度受到多方面的影响,比如脚本等待时间、页面加载的速度、网速、设备性能,还有自动化测试用例的繁琐程度,这对这些情况:

①减少操作步骤,减少脚本用例不必要的步骤

②设置等待时间的时候,可以 sleep 固定的时间,也可以检测某个元素出现后中断等待也可以提高速度

③实现多线程。在编写测试用例的时候,一定要实现松耦合,然后在服务器允许的情况下, 尽量设置多线程运行,提高执行速度。注意说了这个很容易被面试官反问,怎么实现多线程的?


28、webdriver 的协议是什么?

JsonWire Protocol


29、自动化测试的时候是不是需要连接数据库做数据校验?

当然不需要啦,接口自动化的时候已经做了

 

30、点击链接以后,selenium 是否会自动等待该页面加载完毕?

会的


31、自动化测试产出比你觉得怎么样?

自己思考吧


32、你封装了 requests 请求库,发送请求后如何获取相应报文?

封装后返回的是一个response 对象。res.json()转换为字典


本文为51Testing经授权转载,转载文章所包含的文字来源于作者:seak海。如因内容或版权等问题,请联系51Testing进行删除。原文链接:https://blog.csdn.net/qq_38224014/article/details/104922362。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   特斯拉(Tesla)在美国和全球艰难地维持着销售增长,而在中国,特斯拉可能会有大动作,这对其实现在全球销售数百万辆电动汽车的目标至关重要。中国媒体的一份最新报道称,特斯拉有意扩建其上海超级工厂(Gigafactory),在这个年产能近 100 万辆电动汽车的工厂基础上再增加第三座扩建厂房。  上海 Gigafactory 是特斯拉产量最大的制造工厂,因为它得益于中国制造业对制造和工厂运营的适宜性,可以生产数十万辆汽车,在全球最热门的电动汽车市场上竞争。  今天的报道来自中国当地媒体,它分享了特斯拉上海工厂的所谓细节。特斯拉最初计划在 2021 年扩建工厂,但后来为扩建计划重新分配了团队。现...
            0 0 757
            分享
          •   一、产品介绍  共享单车是企业向消费者投放的短程出行设施,主要是用于解决大众运输系统中的“最后一公里”问题,同时也实现了缓解交通阻塞、减低噪音和空气污染的功能。  共享单车主要由普通单车配备 GPS 定位装置、里程计数装置、限速装置等构成,往往带有不同的色彩和产品 logo 等。  二、测试要点  共享单车测试主要从界面测试、安全测试、兼容性测试、易用性测试、压力测试、功能测试和性能测试等几个方面考虑,具体分析见下文。  注:设计测试过程中我认识到一个面面俱到的测试流程需要非常缜密的考虑,由于时间、精力和经验上的限制,在下面给出的具体测试要点中可能存在一些关键点遗漏。对于您指出的不足,我十...
            0 0 3851
            分享
          • 有的同学可能会想,只要后台数据库表正确迁移完毕且验证完毕,那么前台程序自然不会有什么问题。但是要知道,数据库迁移测试的目标是保证数据正确、一致、可用。我们可以通过编写脚本提取新旧库表数据并使用文本对比工具(例如Beyond Compare)或MD5值对比来验证数据的正确性及一致性。但针对数据的可用性,则需要通过黑盒测试去进一步验证。因此,对于数据迁移而言,黑盒测试是十分重要的一环。我们要在后台验证数据库表正确迁移的基础上,针对性地开展功能测试。一般而言,数据库迁移是伴随着系统功能的迭代而进行的,因此我们进行数据迁移功能测试的前提就是确保新系统本身的业务功能是可用、完善的。如果新系统本身的功能就...
            0 1 3240
            分享
          •   先来跟大家同步下我们的大背景。我们按照功能方向分成若干开发小组。每个开发小组有两到三位产品经理,有六七位研发和两位测试,形成一个相对稳定的交付小组。禅道软件团队的迭代速度比较快,都是以周为单位进行迭代。目前由于回归测试的压力比较大,所以是双周对外发布版本。产品目前主要是项目管理软件的开源版、企业版和旗舰版三个大的方向。  我们以时间线来讲一下产品团队的日常。我们从周一下午开始讲起,按照流程的先后顺序讲会比较顺。  周一下午到周二的这一天半左右的时间里,产品经理团队要着手准备后面两个迭代的用户故事列表。这一天半时间中,搭档的两位产品经理会进行各种讨论交流,也会和研发骨干进行沟通交流,确认一些...
            0 0 736
            分享
          • 概述对于post请求 有几种方式。 Content-Type 实体头部用于指示资源的MIME类型 media type 。content-type是http请求头的字段。作为请求头时(post或者put),客户端告诉服务器实际发送的数据类型。对于不同的content-type 发送的数据不太一样,对于服务器端,需要如何获取数据,以及正确解析的方法也是不一样的。下面列出常用的几种 Content-Typeapplication/jsonapplication/x-www-form-urlencodedmultipart/form-datatext/plaintext/xmltext/html1....
            0 0 1509
            分享
      • 51testing软件测试圈微信