精华内容
下载资源
问答
  • 但是在自动化工程的实施过程中,高质量的自动化测试不是只有测试人员保证的。需要开发人员规范开发习惯,如给页面元素加上唯一的name,id等,这样就能大大地提高元素定位的准确性。当然如果开发人员开发不规范,我们...
  • 因此在笔试和面试中常常会有一定量的编码,主要考察以下几点。 基本编码能力及思维逻辑 基本数据结构(顺序表、链表、队列、栈、二叉树) 基本算法(排序、查找、递归)及时间复杂度 除基本算法之外,笔试面试...
  • 自动化测试面试题凑字数11
  • 软件测试专业找工作必备,Python自动化测试常见面试题
  • APP、Web自动化测试面试题

    千次阅读 2020-08-25 21:25:34
    一般面试的时候是结合简历上的项目一步一步深入进行问的问题

    App/Web自动化的面试题

    备注:一般面试的时候是结合简历上的项目一步一步深入进行问的问题,只要你实际做过一个项目的,加上自己面试准备下,问题不会太大
    【APP自动化问题:1.3.6.10.11.12.13.14.19】
    【Web自动化问题:20.21.22.24.25.26.29.31.32.33.34.】
    【共有问题:2.4.5.7.8.9.15.16.17.18.】

    1、目前主流的APP自动化测试框架,各个自动化适合的语言
    参考点:appium macaca、robotium、UiAutomator
    2、你对单元测试框架了解多少
    参考点:unittest、testng、nose
    3、app自动化,简述一下这几种自动化框架的异同
    在这里插入图片描述
    4、定位方式有哪几种?一般如何选择
    参考点:ID/className/Name/LinkText/PartialLinkText/Xpath/CSS selector
    5、UI自动化能发现多少Bug
    参考点:UI自动化的目的不是为了发现多少Bug,主要是为了减轻重复的基础操作和线上监控的作用
    6、monkey属于自动化吗?
    参考点:monkey不属于严格意义上的自动化,monkey是生成用户或系统的伪随机事件,在屏幕上触发随机点击事件
    7、谈谈你们的自动化是怎么搭建的?
    8、你们在自动化过程中遇到了哪些问题
    9、你们一般对什么case会进行自动化,自动化一般在哪个阶段进行
    参考点:主要是主流程中比较容易实现的进行自动化,一般在集成阶段进行该版本的自动化监控,平常的话会一直跑线上监控的
    10、robotium可以跨进程吗?你能简述一下吗?
    11、app自动化你们一般用什么工具定位元素?
    参考点:Uiautomatorview和appium的客户端
    12、您需要一台服务器机器来运行Appium上的测试吗?
    参考点:不,您不需要服务器机器在Appium上运行测试。 Appium促进了一个2层架构,其中测试机连接到运行Appium的测试服务器并自动化整个事情。您可以在运行测试的同一台机器上运行Appium。
    13、使用Appium可能遇到的错误是什么?
    参考点:
    错误1:需要以下所需的功能,但不提供:设备名称,platformName
    错误2:找不到adb。请使用Android SDK根目录路径设置ANDROID_HOME环境变量
    错误3:openqa.selenium.SessionNotCreatedException:无法创建新的会话
    错误4:如何在移动应用程序中查找DOM元素或XPath?
    详情见:https://www.jianshu.com/p/53d8a0f0e35c
    14、简述Appium的原理?
    参考点:Appium是使用Node.js平台编写的“HTTP Server”,并使用Webdriver JSON线协议驱动iOS和Android会话。 因此,在初始化Appium Server之前,必须在系统上预先安装Node.js 当Appium被下载并安装时,在我们的机器上设置一个暴露REST API的服务器
    它从客户端接收连接和命令请求,并在移动设备(Android / iOS)上执行该命令,
    它响应HTTP响应。 再次,为了执行此请求,它使用移动测试自动化框架来驱动应用程序的用户界面。 框架像Apple Instruments for iOS(仅适用于Xcode 3.0或更高版本的OS X v10.5及更高版本)适用于Android API的Google UIAutomator 16级或更高版本
    Selendroid for Android API等级在15以下。
    15、目前你们用的自动化工具版本号是多少?
    16、元素等待的3种方式简述一下,并且你平常用的是哪一种?
    17、断言是什么
    18、测试报告你们用的是什么框架?
    19、app自动化 如何控制在多台设备上执行?
    20、selenium的原理?
    21、selenium 如何控制多个浏览器执行?
    22、robotframework是什么?和selenium的关系是什么
    23、你们目前用的py版本是多少的?2.X和3.X的异同?
    24、selenium中如何保证操作元素的成功率?
    参考点:- 添加元素智能等待时间 driver.implicitly_wait(30)

    • try 方式进行 id,name,clas,x path, css selector 不同方式进行定位,如果第一种失败可以自动尝试第二种
      -Selenium保证元素成功率是通过元素的定位,当然它的定位方法很多,一定能有合适的。但是在自动化工程的实施过程中,高质量的自动化测试不是只有测试人员保证的。需要开发人员规范开发习惯,如给页面元素加上唯一的name,id等,这样就能大大地提高元素定位的准确性。当然如果开发人员开发不规范,我们在定位元素的时候尽量使用相对地址定位,这样能减少元素定位受页面变化的影响。只要我们元素定位准确,就能保证我的每一个操作符合我的预期
      25、如何提高selenium脚本的执行速度?
      参考点:如网速,操作步骤的繁琐程度,页面加载的速度,以及我们在脚本中设置的等待时间,运行脚本的线程数等。所以不能单方面追求运行速度的,要确保稳定性,能稳定地实现回归测试才是关键。
      我们可以从以下几个方面来提高速度:
      一,减少操作步骤,如经过三四步才能打开我们要测试的页面的话,我们就可以直接通过网址来打开,减少不必要的操作。
      二,中断页面加载,如果页面加载的内容过多,我们可以查看一下加载慢的原因,如果加载的内容不影响我们测试,就设置超时时间,中断页面加载。
      三,在设置等待时间的时候,可以sleep固定的时间,也可以检测某个元素出现后中断等待也可以提高速度。
      四,配置testNG实现多线程。在编写测试用例的时候,一定要实现松耦合,然后在服务器允许的情况下,尽量设置多线程运行,提高执行速度。
      26、selenium2.X和3.X的异同?
      27、什么是持续集成?
    • 持续集成源于极限编程(XP),是一种软件实践,软件开发过程中集成步骤是一个漫长并且无法预测的过程。集成过程中可能会爆发大量的问题,因此集成过程需要尽可能小而多,实际上持续集成讲的是不断的去做软件的集成工作。持续集成,最简单的形式是包括一个监控版本控制(SVN等等)变化的工具。当变化被发觉时,这个工具可以自动的编译并测试你的应用
      28、什么是page object设计模式?
      通过分离测试对象和测试脚本的抽象来实现的
      29、selenium中下拉框怎么定位?
      30、你觉得自动化测试最大的缺陷是什么?
      参考点:-不稳定
      -可靠性
      -不易维护
      -成本与收益
      31、Selenium是否支持桌面应用软件的自动化测试。
      Selenium不支持桌面软件的自动化测试,Selenium是根据网页元素的属性才定位元素,而其他桌面软件自动化测试工具是根据桌面元素的位置来定位元素,当然现在也有根据桌面元素的属性来定位的。
      32、BDD是什么?你了解多少?TDD是什么?
      参考点:BDD:行为驱动开发(Behavior Driven Development)
      TDD:测试驱动开发(Test-Driven Development)
      33、selenium是否可以直接读取Excel表中测试用例,来执行相关测试
      参考点:可以的,需要借助第三方库
      34、Selenium有哪些组件?
      最早的有Selenium IDE,IDE只支持安装在fiefox上一个插件,支持录制自动化脚本。还有
      remote RC,和Grid 和webdriver。我们一般最重要的就是使用webdriver。

    最后:

    欢迎关注公众号:程序员阿沐,领取一份300页pdf文档的Python自动化测试工程师核心知识点总结!

    这些资料的内容都是面试时面试官必问的知识点,篇章包括了很多知识点,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

    展开全文
  • 自动化测试面试题(一)

    千次阅读 2020-08-27 21:41:20
    自动化测试面试题(一)NO.1 什么是自动化测试NO.2 什么是分层测试?NO.3 自动化测试的适用和不适用场景NO.4 你觉得自动化测试最大的缺陷是什么?NO.4 项目使用的自动化测试框架NO.5 对库的使用NO.6 如何设计高质量...

    NO.1 什么是自动化测试

    自动化测试就是把以人为驱动的测试行为转化为机器执行的一种过程,即模拟手工测试的步骤,通过执行测试脚本自动地测试软件;

    自动化测试就是程序(脚本)测试程序,使用自动化工具编写、执行测试人员测试脚本和案例的技术

    自动化测试的主要目标是减少手动运行的测试用例数量,而不是完全取消手动测试。

    NO.2 什么是分层测试?

    • 1.数据层
    • 2.接口层’
    • 3.UI层

    NO.3 自动化测试的适用和不适用场景

    自动化测试决定基于ROI(投资回报率),自动化测试适用于需求比较稳定(不经常变更)的场景

    在以下情况下首选自动化

    • 重复性任务
    • 烟雾和理智测试
    • 使用多个数据集进行测试
    • 回归测试用例

    以下场景不适合用自动化

    • 受测试的应用程序频繁更改
    • 临时测试
    • 随机测试

    NO.4 你觉得自动化测试最大的缺陷是什么?

    • 不稳定
    • 可靠性不强
    • 不易维护
    • 成本与收益

    NO.4 项目使用的自动化测试框架

    appium 、selenium、unittest 或 robotframework
    看项目情况回答

    根据自动化测试目标不一致,分为三种:appUI自动化测试,webUI自动化测试,接口自动化测试。
    appUI搭建框架使用python+uniitest+appium工具
    webUI搭建框架使用python+selenium+unittest
    接口测试框架使用python+unittest+requests

    NO.5 对库的使用

    自己最熟悉哪个库,如何使用这些库的,是否做了基于复用的封装,怎么考虑的这些封装

    参考以下内容:
    分别封装了基础类例如:等待某元素出现的方法,更方便查找操作元素的方法,和被测试业务相关的类和方法

    代码举例:

    class BaseView(object):
    def __init__(self, driver):
            self.driver = driver
    
        # 获取一个页面,参数为url
        def get(self, *loc):
            return self.driver.get(*loc)
    
        # 普通元素定位
        # by_id  find_element(By.id,'xxx')或find_element_by_id('')
        # by_name  find_element(By.name,'xxx')或find_element_by_name('')
        # by_xpath  find_element(By.xpath,'xxx')或find_element_by_xpath('')
        # by_class_name  find_element(By.className,'xxx')或find_element_by_class_name('')
        # by_link_text  find_element(By.linkText,'xxx')或find_element_by_link_text('')
        # by_partial_link_text  find_element(By.partialLinkText,'xxx')或find_element_by_partial_link_text('')
        # by_tag_name  find_element(By.tagName,'xxx')或find_element_by_tag_name('')
        # by_css_selector  find_element(By.cssSelector,'xxx')或find_element_by_css_selector('')
        def find_element(self, *loc):
            return self.driver.find_element(*loc)
    
        # 元素定位返回一个数组list,一般用于判断元素是否存在
        def find_elements(self, *loc):
            return self.driver.find_elements(*loc)
    
        # 获取屏幕大小
        def get_window_size(self):
            return self.driver.get_window_size()
    
        # 滑动屏幕
        def swipe(self, star_x, star_y, end_x, end_y, duration):
            return self.driver.swipe(star_x, star_y, end_x, end_y, duration)
    
        # 时间等待(隐形等待)
        def implicitly_wait(self, t):
            return self.driver.implicitly_wait(t)
    
        # 时间等待(显性等待)
        def web_driver_wait(self, t, s):
            # 由于不长使用,不再进行具体的封装
            # 每经过s秒就查看一次指定元素是否可见,如果操作ts薄超时异常
            return WebDriverWait(self.driver, t, s)  # 可以配合until或者until_not方法,再辅助以一些判断条件,就可以构成这样一个场景
    
    

    NO.6 如何设计高质量自动化脚本

    • 1.使用四层结构实现业务逻辑、脚本、数据分离。
    • 2.使用PO设计模式,将一个页面用到的元素和操作步骤封装在一个页面类中。如果一个元素定位发生了改变,我们只用修改这个页面的元素属性
    • 3.对于页面类的方法,我们尽量从客户的正向逻辑去分析,方法中是一个独立场景,例如:登录到退出,而且不要想着把所有的步骤都封装在一个方法中。
    • 4 测试用例设计中,减少测试用例之间的耦合度。

    NO.7 如何在脚本中组织测试用例,按什么模式设计

    按page object设计模式(PO模式)

    page object设计模式:

    • 1.通俗来讲,把每个页面当成一个页面对象,页面层写定位元素方法和页面操作方法
    • 2.用例层从页面层调用操作方法,写成用例
    • 3.可以做到定位元素与脚本的分离

    NO.8 page object设置模式中,是否需要在page里定位的方法中加上断言

    不需要,page页只做元素抓取和操作方法

    NO.9 page object设计模式中,如何实现页面的跳转?

    初始化driver参数,Page类传driver参数

    NO.10 你的自动化用例的执行策略是什么?

    • 1.自动化测试用例是用来监控的。集成到jenkins,创建定时任务定时执行;
    • 2.有些用例在产品上线前必须回归。jenkins上将任务绑定到开发的build任务上,触发执行;
    • 3.有些用例不需要经常执行。jenkins创建一个任务,需要执行的时候人工构建即可。

    NO.11 如何去提升用例的稳定性?

    用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了

    可采用以下措施:

    • 1.在经常检测失败的元素前尽量加上显式等待时间,等要操作的元素出现之后再执行下面的操作;
    • 2.多线程的时候,减少测试用例耦合度,因为多线程的执行顺序是不受控制的;
    • 3.多用 try 捕捉,处理异常;
    • 4.尽量使用测试专用环境,避免其他类型的测试同时进行,对数据造成干扰。

    NO.12 自动化遇到用例fail掉如何排查故障

    按层次说清楚排查失败:

    • 手工查应用是否真的有bug,
    • 确认不是bug,是不是新版本引入了新的变更;调试脚本看看自己的脚本是不是因为没有等待元素出现后就操作了;是不是元素上面有其他元素出现这样操作是不是操作了其他的元素上了

    NO.13 什么是持续集成?

    频繁的将代码集成到主干,持续性的进行项目的构架,以便能能够快速发现错误,防止分支大幅度偏离主干

    NO.14 什么自动化测试的需要连接数据库做数据校验?

    • UI自动化不需要
    • 接口测试会需要

    NO.15 如何去定位页面上动态加载的元素?

    首先触发动态事件,然后再定位。
    如果是动态菜单,则需要层级定位。——JS实现(对动态事件封装)

    NO.16 如何去定位属性动态变化的元素?

    先去找该元素不变的属性,要是都变,那就找不变的父元素,用层级定位(以不变应万变)
    属性动态变化也就是指该元素没有固定的属性值,可以通过:
    JS实现,
    通过相对位置来定位,比如xpath的轴,paren/following-sibling/percent-sibling

    NO.17 如何使用xpath定位一个兄弟元素

    因为兄弟元素和该元素同属于一个父亲节点的元素,所以使用xpath定位一个兄弟元素应先定位父亲节点的元素

    NO.18 等待元素出现的这个方法如何实现的

    用一个循环间隔时间去检查这个元素是否可见

    NO.19 怎样去选择一个下拉框中的value=xx的option?

    1.select类里面提供的方法:select_by_value(“xxx”)
    2.xpath的语法也可以定位到

    NO.20 如何在定位元素后高亮元素(以调试为目的)?

    重置元素属性,给定位的元素加背景、边框

    NO.21 webdriver可以用来做接口测试吗?

    不可以,webdriver是专门做web的UI自动化参数

    NO.22 什么是断言和验证?

    断言(assert):测试将会在检查失败时停止,并不运行后续的检查

    • 优点:可以直截了当的看到检查是否通过
    • 缺点:检查失败后,后续检查不会执行,无法收集那些检查结果状态

    验证(vertify):将不会终止测试

    • 缺点:你必须做更多的工作来检查测试结果

    查看日志——>耗时多,所以更偏向于断言

    NO.23 什么是数据驱动框架?它与关键字驱动框架有什么不同?

    数据驱动框架:
    在这个框架中,测试用例逻辑驻留在测试脚本中。测试数据被分离并保存在测试脚本之外。
    测试数据是从外部文件(Excel文件)中读取的,并被加载到测试脚本中的变量中。
    变量用于输入值和验证值。

    关键字驱动框架:
    关键字/表驱动框架需要开发数据表和关键字。
    它们独立于执行它们的测试自动化工具。
    可以使用或不使用应用程序来设计测试。
    在关键字驱动的测试中,被测试的应用程序的功能记录在一个表格中,以及每个测试的分步说明。

    NO.24 解释使用TestNG而不是JUnit框架的好处?

    TestNG相较于Junit的优势:

    • 在JUnit中,我们必须声明@BeforeClass和@AfterClass,这是JUnit中的一个约束,而在TestNG中没有像这样的约束。

    • TestNG提供了更多的setUp / tearDown级别。

      • 1.@ Before/AfterSuite
      • 2.@Before/AfterTest
      • 3.@Before/AfterGroup
    • TestNG中不需要扩展任何类。

    • TestNG中没有方法名称约束,就像JUnit一样。
      在TestNG中,我们可以告诉测试一个方法依赖于另一个方法,而在JUnit中这是不可能的。

    • 测试用例的分组在TestNG中可用,而JUnit中则不可用。执行可以基于组完成。例如,如果你已经定义了许多案例,并通过将2个组分别定义为“离职“与”回归”隔离。如果你只是想执行“理智”的情况,那就告诉TestNG执行“理智”。TestNG将自动执行属于“离职”组的案例。
      另外,TestNG支持并行测试用例执行。

    NO.25 与@Test注释相关的TestNG参数的目的是什么?

    在TestNG中,参数是修改注释功能的关键字。

    NO.26 可以使用TestNG运行一组测试用例吗?

    是的,TestNG框架支持在测试组的帮助下执行多个测试用例。
    它提供了以下选项来运行特定组中的测试用例。
    如果想基于回归测试或冒烟测试等其中一个组来执行测试用例,那么:
    @Test(groups = {“regression-tests”, “smoke-tests”})

    展开全文
  • 自动化测试面试题

    千次阅读 2019-01-14 16:59:00
    TestNG可以生成测试报表,并且报表展示多样,可以在其基础上自行开发测试报告,插件以及测试监听器等 三、什么是断言 断言assert 用于代码中验证实际结果符合预期结果,如果测试用例失败,则抛出异常并且提供...

    一、testNG中注解有哪些

     

    二、TestNG有哪些优点

    TestNG的注释非常强大和方便

    TestNG允许并行测试

    TestNG可以给予group方式执行测试

    TestNG可以生成测试报表,并且报表展示多样化,可以在其基础上自行开发测试报告,插件以及测试监听器等

    三、什么是断言

    断言assert 用于代码中验证实际结果符合预期结果,如果测试用例失败,则抛出异常并且提供断言日志

    四、什么事web自动化

    指的是从UI界面,也就是用户界面层面进行的自动化测试,测试人员通过编程自动化的程序也就是自动化脚本实现打开界面,操作界面的业务逻辑

    五、什么是selenium

    是一个开源的web自动化测试的框架,支持多种编程语言,支持跨浏览器平台进行测试

    6、写出selenium 中你最熟悉的接口或者类

    WebDriver InternetExplorerDriver FirefoxDriver ChromeDriver WebElement WebDriverWait  By

    7、元素定位的类型有哪些

    By.id()  By.name()  By.xpath()  By.classname() By.tagName()  By.cssSelector()  By.linkText()  By.partialLinkText()  By.xpath()

    8、Xpath 是什么?

    是web页面元素定位的一种方式,相当于元素dom中的一个路径,可以采用绝对路径和相对路径的方式进行定位,对于定位页面元素有很大的帮助,同时需谨慎使用,当页面结果发生变化,那么定位信息也可能需要变化

    9、findElement()和findElements()方法有什么区别

    两个都是查找元素的方式

    findElement()查找一个页面元素,只会返回WebElement对象

    findElements()查找页面是所有符合匹配的元素,返回元素集合

    10、登录按钮除了click方法还有其他方式吗?

    submit() ,前提是input元素的type 为submit

    11、简述你知道的延迟等待方式

    硬性等待,也叫线程等待,通过休眠的方式完成等待如等待5秒Thead.sleep(5000)

    隐式等待,通过imlicitlyWait完成延时等待,这种事针对全局设置的等待,如设置超市10秒,使用imlicitlyWait后,如果第一次没有找到元素,会在10秒之内不断循环查找元素,如果超时间10秒还没有找到,则抛出异常

    显式等待,智能等待,针对指定元素定位指定等待时间,指定的范围内进行元素查找,找到元素则直接返回,超时没有找到元素则抛出异常

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

    1、优化等待时间,使用WebDriverWait智能等待代替 线性等待sleep和隐式等待imlicitlyWait

    2、减少不必要的操作

    3、在服务器允许的情况下,使用多线程实现并发执行测试用例

    13 、怎么对含有验证码的功能进行自动化测试

    图像识,难度大,效果不好不推荐

    屏蔽验证码,邀请开发处理,在测试环境,预发和正式环境恢复

    万能验证码,使用复杂的其他人无法猜到的验证码

    14、如何验证复选按钮是不是被选中

    可以使用元素的is selected()方法,如果返回的是true则说明被选中,否则表明未被选中

    15、如何处理alert 弹窗?

    先定位跳转到alert上,然后点击确认或取消

    Alert alert = dirver.swichTo().alert();//切换到alert

    alert.accept();//确定

    alert.dismiss();//

    16、如何用webdriver进行鼠标右键点击操作

    使用Actions 类

    Actions actions = new Actions(driver)

    actions.moveToElement(element).perform();

    actions.contextClick.perform();

    17、如何使用webdriver 执行拖拽 的操作

    还是使用actions类?

    Actions actions = new Actions(driver)

    WebElement element1 = driver.findElement(by);

    WebElement element2 = driver.findElement(by);

    actions.dragAndDrop(element1,element2)perform();

    18、举一个WebDriver中方法重载的例子

    frame(string, name), frame(int index), frame(Web Element element)

    19、下拉菜单如何选择一个菜单项?

    如果下拉菜单是select 标签,使用方法;select By Value() 或者selectByIndex()或者select ByVisibleText()即可

    如果这个下拉菜单不是通过select标签创建,则直接通过xpath 定位元素然后去点击选择

    20、自动化测试分为哪几类

    UI自动化

    接口自动化

    web自动化

    终端自动化

     

    转载于:https://www.cnblogs.com/lin-yue/p/10267817.html

    展开全文
  • 用友自动化测试面试题用友自动化测试面试题
  • 自动化测试面试题及答案

    千次阅读 多人点赞 2020-04-26 11:48:48
    自动化测试面试题及答案?–看完后吊打面试官! 一、前言 最近有童鞋和我抱怨,说网上很难搜到那些全面又合适的自动化测试面试题,这里根据我个人的经验以及收集整理的: 你没看错,不慌,慢慢来。 先从什么是自动化...

    自动化测试是什么?自动化测试学什么?自动化测试面试题及答案?–看完后吊打面试官!
    一、前言
    最近有童鞋和我抱怨,说网上很难搜到那些全面又合适的自动化测试面试题,这里根据我个人的经验以及收集整理的:
    在这里插入图片描述

    你没看错,不慌,慢慢来。

    先从什么是自动化测试开始说起哈!

    二、什么是自动化测试?
    什么是自动化测试?

    当我第一次知道自动化测试的时候,除了知道“自动化”这三个有些高大上的称呼之外,我对自动化测试一无所知,正如谈恋爱一样,找女朋友之前要知道她是谁。

    自动测试就是把以人为驱动的测试转化为机器执行的一种过程,它是一种以程序测试程序的过程。嗦嘎!那么…

    三、自动化测试需要学什么技能?
    这是我以前在知乎写的,可以详细的了解2020年自动化测试攻城狮需要学什么技能了!

    四、2020年全网最全的自动化测试面试题和答案,原来干货都在这里

    1、你会封装自动化测试框架吗?

    这个问得最多,甚至有很多公司直接写在招聘要求中!

    当然可以,自动化框架主要的核心框架就是分层+PO模式:分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。然后再加上日志处理模块,ini配置文件读取模块,unittest+ddt数据驱动模块,jenkins持续集成模式组成。

    2、如何把自动化测试在公司中实施并推广起来的?

    1.项目组调研选择自动化工具并开会演示demo案例,我们主要是演示selenium和robotframework两种。

    2.搭建自动化测试框架,在项目中逐步开展自动化。

    3.把该项目的自动化流程、框架固化成文档

    4.推广到公司的其它项目组应用

    3、请描述一下自动化测试流程?

    1.编写自动化测试计划

    2.设计自动化测试用例

    3.编写自动化测试框架和脚本

    4.调试并维护脚本

    5.无人值守测试

    6.后期脚本维护(添加用例、开发更新版本)

    4、自动化测试用例如何编写?以下答案二选一即可:

    1.用例是自动化测试工程师自己设计的,一般刚开始已基本业务流程为主(登录–完成一个业务–退出)

    2.从系统测试用例中进行筛选或由业务工程师提供

    5、上一个项目中自动化测试的执行策略?

    上一个项目中是定时执行的,设置的执行时间是晚上12点,执行完毕后会自动发送邮件通知

    6、自动化测试发现BUG多吗?

    不多,因为之前项目组是把已经测试通过的基本功能再进行自动化脚本编写和在后续版本执行自动化测试,它主要是保证已经测试通过的功能在新版本更新后没有问题。

    7、你觉得自动化测试的价值在哪里?你们公司为什么要做自动化测试?

    引用自动化测试之后,能代替大量繁琐的回归测试工作,把业务测试人员解放出来,既而让业务测试人员把精力集中在复杂的业务功能模块上,自动化测试一般是对稳定下来的功能进行自动化,保证不会因为产品的更新导致之前稳定下来的功能出现BUG

    8、自动化测试有误报过bug吗?产生误报怎么办?

    有误报过,有时候自动化测试报告中显示发现了bug,实际去通过手工测试去确认又不存在该bug。

    误报原因一般是:

    1.元素定位不稳定,需要尽量提高脚本的稳定性;

    2.开发更新了页面但是测试没有及时更新维护!

    9、自动化测试过程中,你遇到了哪些问题,是如何解决的?

    1.频繁地变更页面,经常要修改页面对象类里面的代码

    2.自动化测试偶尔出现过误报

    3.自动化测试结果出现覆盖的情况:Jenkins根据时间建立文件夹

    4.自动化测试代码维护比较麻烦

    5.自动化测试进行数据库对比数据

    10、在上一家公司做自动化测试用的什么框架?

    可以说出以下自己擅长的一种:

    1.python+selenium+unittest+htmltestrunner

    2.python+selenium+pytest+allure

    1. robotframework+Selenium2Library

    12、在selenium自动化测试中,你一般完成什么类型的测试?自动化覆盖率?

    主要是冒烟测试和回归测试。回归测试主要写一些功能稳定的场景,通过自动化手段去实现,节约测试时间。因为自动化测试用例也是在不断的更新和迭代,没有刻意去统计,大概在30%-40%左右!

    13、在执行脚本过程,如何实现当前元素高亮显示?

    这个其实就是利用javaScript去修改当前元素的边框样式来到达高亮显示的效果,

    14、如果一个元素无法定位,你一般会考虑哪些方面的原因?

    1.页面加载元素过慢,加等待时间

    2.页面有frame框架页,需要先跳转入frame框架再定位

    3.可能该元素是动态元素,定位方式要优化,可以使用部分元素定位或通过父节点或兄弟节点定位。

    4.可能识别了元素,但是不能操作,比如元素不可用,不可写等。需要使用js先把前置的操作完成,

    15、元素定位方法你熟悉的有哪些?

    id name classname link_text css xpath

    16、遇到frame框架页面怎么处理?

    先用driver.switch_to.frame()跳转进去frame,

    然后再操作页面元素,

    操作完后使用driver.swith_to.default_content()跳转出来

    17、遇到alert弹出窗如何处理?

    使用driver.switch_to.alert方法先跳转到alert弹出窗口

    然后再通过accept点击确定按钮,通过dismiss点击取消难,通过text()获得弹出窗口的文本。

    18、如何处理多窗口?

    这个多窗口之间跳转处理,我们在项目中也经常遇到。就是,当你点击一个链接,这个链接会在一个新的tab打开,然后你接下来要在新tab打开的页面查找元素,

    1.我们在点击链接前使用driver.current_window_handle获得当前窗口句柄。

    2.再点击链接。点击后通过driver.window_handles获得所有窗口的句柄,

    3.然后再循环找到新窗口的句柄,然后再通过driver.switch_to.window()方法跳转到新的窗口。

    19、怎么验证元素是enable/disabled/checked状态?

    定位元素后:分别通过isEnabled(),isSelected(),isDisplayed()三个方法进行判断。

    20、 如何处理下拉菜单?

    在Selenium中有一个叫Select的类,这个类支持对下拉菜单进行操作。使用方法如下:

    1.定位元素

    2.把定位的元素转化成Select对象。

    sel = Select(定位的元素对象)

    3.通过下标或者值或者文本选中下拉框。
    sel.select_by_index(index);
    sel.select_by_value(value);
    sel.select_by_visible_text(text);

    21、在日历这种web 表单你是如何处理的?

    首先要分析当前网页试用日历插件的前端代码,看看能不能通过元素定位,点击日期实现,如果不能,可能需要借助javascript。还有些日历控件一个文本输入框,可以直接sendKeys()方法来实现传入一个时间的数据。

    22、举例一下说明一下你遇到过那些异常

    常见的selenium异常有这些:

    NoSuchElementException:没有该元素异常
    TimeoutException : 超时异常

    ElementNotVisibleException :元素不可见异常
    NoSuchAttributeException :没有这样属性异常
    NoSuchFrameException :没有该frame异常

    23、关闭浏览器中quit和close的区别

    简单来说,两个都可以实现退出浏览器session功能,close是关闭你当前聚焦的tab页面,而quit是关闭全部浏览器tab页面,并退出浏览器session。知道这两个区别,我们就知道quit一般用在结束测试之前的操作,close用在执行用例过程中关闭某一个页面的操作。

    24、在Selenium中如何实现截图,如何实现用例执行失败才截图

    在Selenium中提供了一个get_screenshot_as_file()的方法来截图的,一般结合try/except捕获异常时使用,进行错误截图。

    25、如何实现文件上传?

    定位元素后,直接使用send_keys()方法设置就行,参数为需要上传的文件的路径。

    26、自动化中有哪三类等待?他们有什么特点?

    1.线程等待(强制等待)如time.sleep(2):线程强制休眠2秒钟,2秒过后,再执行后续的代码。建议少用。

    2.imlicitlyWait(隐式等待)会在指定的时间范围内不断的查找元素,直到找到元素或超时,特点是必须等待整个页面加载完成。

    3.WebDriverWait(显式等待)通常是我们自定义的一个函数代码,这段代码用来等待某个元素加载完成,再继续执行后续的代码

    27、你写的测试脚本能在不同浏览器上运行吗

    当然可以,我写的用例可以在在IE,火狐和谷歌这三种浏览器上运行。实现的思路是封装一个方法,分别传入一个浏览器的字符串,如果传入IE就使用IE,如果传入FireFox就使用FireFox,如果传入Chrome就使用Chrome浏览器,并且使用什么浏览器可以在总的ini配置文件中进行配置。需要注意的是每个浏览器使用的驱动不一样。

    28、什么是PO模式,为什么要使用它

    PO是Page Object 模式的简称,它是一种设计思想,意思是,把一个页面,当做一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为,PO模式一般使用三层架构,分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。

    五、预祝面试成功,给您的OFFER,请收下!
    最后预祝每一位求职者都能找到自己如意的工作!马上实现升职加薪!
    在这里插入图片描述

    本文转载自知乎诸葛:https://zhuanlan.zhihu.com/p/133325731
    欢迎关注博主公众号,一起学测试
    在这里插入图片描述
    扫一扫加入测试交流群
    在这里插入图片描述

    展开全文
  • 下面我们进入正题—接口自动化测试面试题 一、get和post的区别? http是上层请求协议,主要定义了服务端和客户端的交互规格,底层都是tcp/ip协议 Get会把参数附在url之后,用?分割,&连接不同参数,Get获取...
  • 自动化测试面试题及答案大全(2)

    万次阅读 多人点赞 2019-04-18 09:40:05
    是一个开源的web自动化测试的框架,支持多种编程语言,支持跨浏览器平台进行测试。 Selenium 1.0或Selenium RC Selenium 2.0或Selenium Webdriver Selenium 3.0 问题2:你如何从命令行启动Selenium RC? java -jar ...
  • 金三已经过去了,相信很多小伙伴在为银四做准备,这里给大家整理了一些金三中有被问到的自动化测试面试题合集,希望会小伙伴们有所帮助! 需要面试题合集的小伙伴,可点击这里领取哦! web自动化测试: 1.Selenium ...
  • 自动化测试面试题及答案大全(1)

    万次阅读 多人点赞 2019-04-18 09:11:58
    自动化面试题记录整理(部分答案自己整理) selenium中如何判断元素是否存在? 没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断 selenium中hidden或者是display = ...
  • 自动化测试面试题及答案大全(5)

    万次阅读 多人点赞 2019-04-20 09:17:45
    1.Selenium是否支持桌面应用软件的自动化测试。 Selenium不支持桌面软件的自动化测试,Selenium是根据网页元素的属性才定位元素,而其他桌面软件自动化测试工具是根据桌面元素的位置来定位元素,当然现在也有根据...
  • 一 、Appium UI 自动化中显式等待和隐式等待的异同?1. 相同点都是智能等待,在一定时间范围内不断查找元素,一旦找到立刻结束查找继续执行代码,没找到才会一直找到超时为止;2. 不...
  • WEB自动化测试面试题及答案大全

    千次阅读 2020-07-11 14:20:32
    1.Selenium是否支持桌面应用软件的自动化测试。 Selenium不支持桌面软件的自动化测试,Selenium是根据网页元素的属性才定位元素,而其他桌面软件自动化测试工具是根据桌面元素的位置来定位元素,当然现在也有根据...
  • 自动化面试题记录整理(部分答案自己整理) selenium中如何判断元素是否存在? 没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断 selenium中hidden或者是display = none...
  • 很多朋友私信我我要把珍藏的自动化测试面试题分享出来,好吧,那我就把2020最新的自动化测试面试题分享给CSDN的朋友们,大家记得点赞哦(文章最后还有一个彩蛋,记得看完) 一、你以前工作的测试流程是什么? 答:...
  • 1.Selenium是否支持桌面应用软件的自动化测试。 Selenium不支持桌面软件的自动化测试,Selenium是根据网页元素的属性才定位元素,而其他桌面软件自动化测试工具是根据桌面元素的位置来定位元素,当然现在也有根据...
  • 是一个开源的web自动化测试的框架,支持多种编程语言,支持跨浏览器平台进行测试。 Selenium 1.0或Selenium RC Selenium 2.0或Selenium Webdriver Selenium 3.0 问题2:你如何从命令行启动Selenium RC? java -jar ...
  • 最近有童鞋和我抱怨,说很难搜到那些全面又合适的自动化测试面试题,这里根据我个人的经验以及收集整理的: 你没看错,不慌,慢慢来。 先从什么是自动化测试开始说起哈! 二、什么是自动化测试? 什么是自动...
  • 根据自己的学习和面试经历,总结了一些自动化测试面试的内容,里面包含UI自动化的框架、元素定位、等待等内容,比较实用。面试一般都是这些内容,只要自己能够流畅的表达出来就ok。
  • 自动化测试面试题及答案大全(下)

    千次阅读 热门讨论 2021-02-20 16:05:47
    4.做自动化测试的目的? a.用来回归 b.用来监控系统稳定性 c.提高工作效率 5.PO模型是怎么做的? pageObject :页面层,操作层,业务层集合成case 6.如何判断case是否通过? 断言,与预期结果比
  • 接口自动化测试面试题(1)

    万次阅读 多人点赞 2019-08-14 15:27:29
    根据网络资料,总结了以下一些常见的接口测试面试题: 为什么要做接口测试? 接口测试能发现哪些问题? 接口测试怎么测? 用什么工具测接口? WebService接口是如何测试的? 没有接口文档如何做接口测试? 在...
  • 自动化测试面试题及答案大全(3)

    千次阅读 多人点赞 2019-04-18 09:55:28
    1.你如何用Selenium测试? Selenium+Maven+TestNG+Jekins 2.如何解决问题? 先思考,然后百度,考虑网速、...4.做自动化测试的目的? a.用来回归 b.用来监控系统稳定性 c.提高工作效率 5.PO模型是怎么做的? page...
  • 自动化测试面试题及答案大全(4)

    千次阅读 2019-04-18 10:00:14
    14.在selenium自动化测试中,你一般完成什么类型的测试? 主要是冒烟测试和回归测试。回归测试主要写一些功能稳定,容易实现的场景,通过自动化手段去实现,节约测试时间。 15.你是如何管理你的测试用例并执行? ...
  • 自动化面试题记录整理(部分答案自己整理) 1、selenium中如何判断元素是否存在? 没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断 2、selenium中hidden或者是display = none的...
  • 软件测试领域内,QTP自动化测试技术20道经典面试题,对于QTP的学习和总结有所帮助! QTP是Quick Test Professional的简称,是一种自动测试工具。使用QTP的目的是想用它来执行重复的自动化测试,主要是用于回归测试和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,466
精华内容 22,586
关键字:

自动化测试面试题