zoukankan      html  css  js  c++  java
  • 自动化测试面试题3(附答案)

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

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

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

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

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

    Q2:举例说明使用selenium框架所遇到的异常

    NoSuchElementException:没有该元素异常

    TimeoutException : 超时异常

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

    Q3:关闭浏览器中quit和close的区别

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

    Q4:什么是PO模式,为什么要使用它

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

    好处:

    PO模式是一种自动化测试设计模式,将业务逻辑和测试逻辑分开,也就是把对象的定位和测试脚本分开,从而提高可维护性。(换个项目只要改写业务逻辑不用改动测试逻辑)

    使业务更清晰

    代码更利于维护

    可以复用

    Q5: python中_ _ init _ _ 和 _ _ new _ _ 区别是什么?

    在python的面向对象中,利用new方法创建对象,然后把这个创建的对象传递到init函数中,以第一个参数进

    Q6:高质量的自动化脚本应该具备哪些特性?

    不需要深入的工作或计划。

    可以加快开始自动化。

    对实际执行操作可以审计跟踪。

    用户不必是编程人员。

    提供良好的(软件或工具)的演示。

    Q7:selenium工作原理

    我们使用Selenium实现自动化测试,主要需要3个东西

    1.测试脚本,可以是python,java编写的脚本程序(也可以叫做client端)

    2.浏览器驱动, 这个驱动是根据不同的浏览器开发的,不同的浏览器使用不同的webdriver驱动程序且需要对应相应的浏览器版本,比如:geckodriver.exe(chrome)

    3.浏览器,目前selenium支持市面上大多数浏览器,如:火狐,谷歌,IE等

    驱动过程分析

    1. 对于每一条Selenium脚本,一个http请求会被创建并且发送给浏览器的驱动
    2. 浏览器驱动中包含了一个HTTP Server,用来接收这些http请求
    3. HTTP Server接收到请求后根据请求来具体操控对应的浏览器
    4. 浏览器执行具体的测试步骤
    5. 浏览器将步骤执行结果返回给HTTP Server
    6. HTTP Server又将结果返回给Selenium的脚本,如果是错误的http代码我们就会在控制台看到对应的报错信息。
  • 相关阅读:
    (转)c++中NULL与nullptr的区别
    剑指offer:面试题1:赋值运算符函数
    剑指offer开篇
    立flag
    牛客网程序员面试金典:1.2——原串翻转(java实现)
    牛客网程序员面试金典:1.1确定字符互异(java实现)
    剑指Offer:面试题34——丑数(java实现)
    剑指Offer:面试题33——把数组排成最小的数(java实现)(未完待续)
    剑指Offer:面试题32——从1到n整数中1出现的次数(java实现)
    8种网站防盗链手段
  • 原文地址:https://www.cnblogs.com/techfix/p/13594896.html
Copyright © 2011-2022 走看看