• 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。

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、背景。最新一年(2019)的软件测试大赛即将拉开帷幕,今天与往年相比,增加了自主可控的分赛项,进一步的丰富了比赛的内容,各项评分依据也更加明确,因此能够根据分数更有针对性的找出自己的代码问题了,从而获得更好地分数,提高脚本编写能力。评测工具完善速度之快,超出个人想象,可以看得出来主办方费心了,预祝软件测试大赛发展的越来越好。自主可控赛项的比赛内容有三部分构成,分别为:功能测试、性能测试、众包测试,其中功能测试的内容就是利用Selenium测试工具对Web应用进行功能测试。之所以称作为自主可控,是因为待测试Web应用是部署在国产的应用服务器上面的,采用的国产CPU、操作系统等,具备完全自主知...
            12 13 2855
            分享
          • 案例设计需求有一个ATM取款系统,现对于取款功能进行了需求变更:只能取面额是100元(如取500,输出5张100元)。现在功能修改为,可以取面额是10元、50元和100元的,其余功能不变,用户界面也没有任何变化,取款原则为“最优吐钞法”,有大额先吐大额,请根据需求变更进行案例设计。参考测试用例大额优先刚好整百的金额,吐出N张100元的刚好为50元,吐出1张50元刚好是50以内的整10元,吐出N张10元取款金额是N百,超过50元,吐出N张100元,1张50元,(M-5)张10元(例如380元,会吐出3张100元,1张50元,8-5张10元)如果是几十元,同时超过50元。那么会吐出1张50元,M-...
            0 0 835
            分享
          •   之前我们讲过,测试工程师的4层技术发展路线都需要掌握哪些技能。学而优则仕,今天我们来说说如果想做某个行业的专家应该掌握哪些技能。  如果你对测试技术不感兴趣,但对某领域的业务兴趣浓厚,可以考虑行业专家路线。  由于测试工程师对产品和业务很熟悉,成为专业的产品经理和业务专家,而且目前很多公司在Beta测试时需要专门的业务工程师或业务专家参与测试。  且配置管理和质量管理也是软件测试工程师职业的一个发展方向:测试工程师——业务测试专家/测试咨询专家/用户体验专家/产品设计专家/软件质量管理专家/项目经理。  晋升方法  大厂  如果你是在大厂,了解公司相关晋升制度,寻求晋升机会,与领导或人力资...
            0 0 385
            分享
          • HTTP状态码表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常或者是出现的错误,能够根据返回的状态码判断请求是否得到正确的处理很重要。状态码由3位数字和原因短语组成,例如下图所示:数字中的第一位指定了响应类别,后两位无分类,响应类别有一下5种:状态码分类表类别原因短语1xxInformational(信息性状态码)接受的请求正在处理2xxSuccess(成功状态码)请求正常处理完毕3xxRedirection(重定向)需要进行附加操作以完成请求4xxClient error(客户端错误)客户端请求出错,服务器无法处理请求5xxServer Error(服务器错误)服务器处理请求出错...
            0 0 1304
            分享
          • 跟大家说说写好一份简历的三个核心点——技能、技能的结果、技能的价值。请好好琢磨这三个短语,如果有需要,记在你的小本本上,或者收藏本文,随时回看和品琢。1、技能。即,你掌握了哪些技术,具备哪些能力。此点,几乎每个人会写。你只需注意技能匹配度的问题——招聘企业的要求是什么,他们需要候选人具备什么样的技能。如果是投递心仪的公司,更要做好简历技能匹配,别拿一份简历广撒网。我做hr的朋友与我讲过,他最头痛的事,便是招聘需求写着要求职者具备x能力,并且有企业实操,可仍旧有很多不满条件的简历投进来,哪怕是加上必须具备这样的词眼,也没啥效果。而他的做法,也很简单:哼一句,右滑退出……你可能会说,咱就广撒网,说...
            0 0 865
            分享
      • 51testing软件测试圈微信