精华内容
下载资源
问答
  • Webdriver 属性有以下: driver.current_url 获取当前页面的URL 地址 driver.name 获取浏览器的名称 driver.title 获取浏览器的Ttitle driver.page_source Webdriver 的方法有 driver.back() driver.forward() ...

    Webdriver 属性有以下:
    driver.current_url 获取当前页面的URL 地址
    driver.name 获取浏览器的名称
    driver.title 获取浏览器的Ttitle
    driver.page_source
    Webdriver 的方法有
    driver.back()
    driver.forward()
    driver.close()
    driver.refresh()
    driver.quite()
    driver.get(“URL”)
    driver.switch_to_alert()
    driver.switch_to_frame(“frame_name”)


    WebElement 接口:
    element.text 获取元素的文本值

    element.clear()
    element.click()
    element.submit()
    element.get_attribute()
    element.is_displayed()
    element.is_selected()
    element.send_keys(“value”)
    element.is_enabled()

    Select 类:
    首先要 创建 Select 对象才能 调用他的属性和方法,

    Select(select_element).options 返回的是所有的下拉选项

    Select(select_element).select_by_index(1) 选择第一个选项

    Select(select_element).select_by_value(value”) 按照Value 进行选择
    Select(select_element).select_by_visible_text("Text”) 按照text 进行选择

    如果想比较list 里的值是否和预期的一样 要用 assertListEqual(Expect_valeu,act_value)

    Alert 类:
    首先要生成Alert 对象

    alert=driver.switch_to_alert()

    属性有 alert.text ,获取 弹出框的文本。

    方法有以下:

    alert.accept()
    alert.dismiss()
    alert.send_keys(“value”)
     

    展开全文
  • 根据自己的学习和面试经历,总结了一些自动化测试面试的内容,里面包含UI自动化的框架、元素定位、等待等内容,比较实用。面试一般都是这些内容,只要自己能够流畅的表达出来就ok。
  • UI自动化测试面试题_1_Unittest框架

    千次阅读 2019-05-29 17:57:13
    创建 和 运行 测试套件 用到的类有以下: TestSuite ,TestLoader , TextTestRunner Python 2.7 TestLoader 有个很方便的 discover , 他会把 所有的文件变成list ,然后再run # coding:utf-8 import ...

    Unittest 框架 分为 四个部分:

    1. Test Fixture 这其中包括 Set up 和Teardown
    2. Test Case 有一个TestCase 基类, 并且提供了assert 方法进行断言
    3. Test suit 对用例进行批量执行
    4. Test runner 提供了用例的调度和分配 ,
    5. Report 提供整体运行结果的汇总, 运行失败的步骤 的实际结果和预期结果

    Test Fixture

    生成 Firefox 或者 Chrome 对象 ,并设置属性 例如 全屏,等待时间, 获取URL

    例如:

    def setUp(self):
    	self.driver=webdriver.Firefox()
    	self.driver.implicitly_wait(30) 
    	self.driver.maximize_window()
    	self.driver.get('Url)
    
    

    Test Case

    def  test_enter(self):
    	self.enter_name=self.driver.find_element_by_name("name")
    	self.enter_name.clear
    	self.enter_name.send_keys("I lover you ")
    	self.assertEqual(2,len([1,2]))
    	
    

    tearDown

    def tearDown(self):
    	self.driver.quit()
    	
    

    Test Runner

    if  __name__==__main__:
         unittest.main(verbosity=2)
         
    

    类级别 setUp() 和 tearDwon ()

    @classmethod
    def setUpClass(cls):
    	cls.driver=webdriver.Firefox()
    	cls.driver.implicitly_wait(30) 
    	cls.driver.maximize_window()
    	cls.driver.get('Url)
    @classmethod	
    def tearDownClass(cls):
    	cls.driver.quit()
    

    断言

    用的最多的四个

    1. assertEqual(a,b) a==b
    2. assertNotEqual(a,b) a !=b
    3. assertTrue(element.is_displayed()) 判断元素是否出现,
    4. assertFalse(element.is_displayed()) 判断元素是否出现

    测试套件

    创建 和 运行 测试套件 用到的类有以下:

    1. TestSuite ,TestLoader , TextTestRunner

    Python 2.7 TestLoader 有个很方便的 discover , 他会把 所有的文件变成list ,然后再run

    # coding:utf-8
    import unittest
    import os
    # 用例路径
    case_path = os.path.join(os.getcwd(), "case")
    # 报告存放路径
    report_path = os.path.join(os.getcwd(), "report")
    def all_case():
        discover = unittest.defaultTestLoader.discover(case_path,
                                                        pattern="test*.py",
                                                        top_level_dir=None)
        print(discover)
        return discover
    
    if __name__ == "__main__":
        runner = unittest.TextTestRunner()
        runner.run(all_case())
    

    生成HtML 测试报告

    def all_case():
        discover = unittest.defaultTestLoader.discover(case_path,
                                                        pattern="test*.py",
                                                        top_level_dir=None)
        print(discover)
        return discover
    
    if __name__ == "__main__":
        #runner = unittest.TextTestRunner()
        runner =HTMLTestRunner.HTMLTestRunner(
    	stream=outfile,
    	titlle="Report",
    	description="description"
    	
        )
        runner.run(all_case())
    
    展开全文
  • Webdriver 通过以下操作控制浏览器: driver.current_url 获取当前页面的URL 地址 driver.name 获取浏览器的名称 driver.title 获取浏览器的Ttitle driver.page_source Webdriver 的方法有 driver.back() ...

    Webdriver 属性有以下:

    1. driver.current_url 获取当前页面的URL 地址
    2. driver.name 获取浏览器的名称
    3. driver.title 获取浏览器的Ttitle
    4. driver.page_source

    Webdriver 的方法有

    1. driver.back()
    2. driver.forward()
    3. driver.close()
    4. driver.refresh()
    5. driver.quite()
    6. driver.get(“URL”)
    7. driver.switch_to_alert()
    8. driver.switch_to_frame(“frame_name”)

    WebElement 接口:

    element.text 获取元素的文本值

    element.clear()
    element.click()
    element.submit()
    element.get_attribute()
    element.is_displayed()
    element.is_selected()
    element.send_keys(“value”)
    element.is_enabled()

    Select 类:

    首先要 创建 Select 对象才能 调用他的属性和方法,

    Select(select_element).options 返回的是所有的下拉选项

    Select(select_element).select_by_index(1) 选择第一个选项

    Select(select_element).select_by_value(value”) 按照Value 进行选择
    Select(select_element).select_by_visible_text("Text”) 按照text 进行选择

    如果想比较list 里的值是否和预期的一样 要用 assertListEqual(Expect_valeu,act_value)

    Alert 类

    首先要生成Alert 对象

    alert=driver.switch_to_alert()

    属性有 alert.text ,获取 弹出框的文本。

    方法有以下:

    alert.accept()
    alert.dismiss()
    alert.send_keys(“value”)

    展开全文
  • 因此在笔试和面试中常常会有一定量的编码,主要考察以下几点。 基本编码能力及思维逻辑 基本数据结构(顺序表、链表、队列、栈、二叉树) 基本算法(排序、查找、递归)及时间复杂度 除基本算法之外,笔试面试...
  • 测试面试题集-UI自动化测试

    千次阅读 2020-10-16 08:30:00
    VOL 165162020-10今天距2021年76天这是ITester软件测试小栈第165次推文点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上08:30准时推送...

    VOL 165

    16

    2020-10

    今天距2021年76天

    这是ITester软件测试小栈第165次推文

    点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 08:30准时推送,每月不定期赠送技术书籍

    微信公众号后台回复“资源”、“测试工具包”领取测试资源,回复“微信群”一起进群打怪。

    本文2533字,阅读约需7分钟

     列举web自动化中常见的元素定位方式?

    • id:根据id来获取元素,返回单个元素,id值一般是唯一的;

    • name:根据元素的name属性定位;

    • tagName:根据元素的标签名定位;

    • className:根据元素的样式class值定位;

    • linkText:根据超链接的文本值定位;

    • partialLinkText:根据超链接的部分文本值定位;

    • cssSelector:css选择器定位;

    • xpath:通过元素的路径来定位;

     简述你所知道的延时等待方式?

    强制等待:也叫线程等待, 通过线程休眠的方式完成的等待,如等待5秒: Thread sleep(5000),一般情况下不太使用强制等待,主要应用的场景在于不同系统交互的地方。

    隐式等待:通过implicitly Wait完成的延时等待,注意这种是针对全局设置的等待,如设置超时时间为10秒,使用了implicitlyWait后,如果第一次没有找到元素,会在10秒之内不断循环去找元素,如果超过10秒还没有找到,则抛出异常,硬式等待比较智能,它可以通过全局配置,但是只能用于元素定位。

    显式等待:也称为智能等待,针对指定元素定位指定等待时间,在指定时间范围内进行元素查找,找到元素则直接返回,如果在超时还没有找到元素,则抛出异常,显示等待是 selenium 当中比较灵活的一种等待方式,他的实现原理其实是通过 while 循环不停的尝试需要进行的操作。

     

     如何模拟浏览器的前进和后退、刷新?

    具体如下:

    driver.navigate().back(); //后退
    driver.navigate().forward();//前进
    driver.navigate().refresh();//刷新
    

     

    Selenium 自动化如何进行文件上传?

    如果是input元素的文件上传,可以通过 Selenium 当中的 send_keys 方式进行传递,但是这种方式局限性比较大,如果遇到像通过 js 调用的组件会有一些问题;这个时候就需要通过一些和系统交互的方式去完成上传操作,比如通过autoitpywinauto 或者是pyautogui这些第三方库进行操作。

     UI自动化测试用例如何设计?

    UI自动化测试用例是从手工测试用例中提取出来的,跟手工测试用例相比,自动化测试用例更加注重用例的严谨性,选择用例的时候遵循以下原则:

    • 优先选取覆盖产品核心功能的用例;

    • 从成本考量,不要选择流程过于复杂的用例;

    • 选取的用例可以是重复执行,繁琐的部分,比如字段验证、提示信息验证;

    • 优先实现正向的测试用例,反向用例一般情况复杂、数量多;

     什么是PO模式?

    PO模式,全称为Page Object Model ,简称POM,是页面对象模式。对页面进行抽象或者说建模的过程,是把一个具体的页面转化为编程语言当中的一个对象,页面特性转化成对象属性,页面操作转化为对象方法。把页面的一个个的web元素设计为页面对象的属性,把页面上的操作(如点击、输入等)设计为页面对象的行为。在自动化测试当中,主要用来实现对页面操作和测试逻辑的一个分离,这样做的好处是业务和实现分开,使自动化测试脚本具备更高的可维护性。

     你认为PO模式的封装原则有哪些?

    • 公共方法表示页面提供的一个服务,比如我们可以把登录封装成一个 login 方法,把搜索方法封装成一个设施方法,把注册操作封装成一个 register 的方法;

    • 尽量不要暴露页面的内部,比如一个HTML的页面还有一个页面的上下结构;

    • 在 PO 当中一般不做断言,会做到页面逻辑和测试逻辑的分离;

    • PO 一般里面的方法返回 self 或者是其他的 Page Object ,也可以是一个元素属性;

    • 整个 PO 不需要封装整个页面的行为,用到什么逻辑就封装什么;

    • 对于统一操作,如果出现不同的结果,可以把用不同的方法来表示,比如说登录成功有跳转,登录失败有报错,如果登录还有一种会授权的状况,那么可以封装成三个单独的方法:login success、login error、login invalid。

     你怎么提高UI自动化脚本的稳定性?

    • 尽量用相对路径的xpath表达式;

    • 查找元素优先用显示等待;

    • 用例与用例之间尽量避免产生依赖,用例可以独立执行;

    • 用例执行结束后对测试场景进行还原,避免影响其他用例的执行;

    • 脚本执行失败后加入重试机制,提升用例的稳定性;

    • 尽量保证单独的测试环境,避免其他的测试同步进行;

     基于Web端如何做自动化测试,谈谈你的思路和方向?

    Web端的自动化测试,基本就是模拟手工测试人员来做功能测试。用机器的自动执行代替人的操作。web端呈现的产品有两个方向可以做自动化测试:接口层和界面操作层,且接口层自动化的比例要高于界面操作层。主要对产品稳定的功能进行自动化测试,主要用于产品的核心功能冒烟测试、回归测试。从系统最核心的功能开始做,再根据情况慢慢展开。

     UI 自动化测试中,如何做集群?

    • Selenium Grid,分布式执行用例;

    • Appium 使用 STF 管理多设备;

    • Docker+K8S 管理集群;

    以上


    That‘s all

    更多系列文章

    敬请期待

    ITester软件测试小栈

    往期内容宠幸

    1.测试面试集-Python接口自动化测试


    2.测试面试题集-MySQL数据库灵魂拷问


    3.测试面试题集-Linux常用命令


    4.测试面试题集-接口测试


    5.测试面试题集-性能测试


    6.测试面试题集-网络基础


    7.测试面试题集-逻辑推理题


    8.测试面试题集-Python编程题


    9.Python接口自动化之logging日志


    10.Python接口自动化之logging封装及实战

    想获取更多最新干货内容

    快来星标 置顶 关注我

    每周一、三、五 08:30见

    <<  滑动查看下一张图片  >>

     后台 回复"资源"取干货

    回复"微信群"一起打怪升级

    个人微信:Cc2015123

    添加请注明来意 :)

    真爱三连,升职加薪自由~

    展开全文
  • 安卓 UI 自动化测试工具 appium:是一个移动端的自动化框架,可用于测试原生应用,移动网页应用 和混合型应用,且是跨平台的。 robotium:是一款国外的 Android 自动化测试框架,主要针对 Android 平台的应用进行...
  • 今天想和大家分享一篇有关Selenium+Web UI自动化测试面试题,今天看了一个视频,在此加以总结,欢迎大佬进行补充。(由于本人平时使用java,所以下文皆以java语言为例) 1. Selenium怎么判断元素是否存在? 答:...
  • https://blog.csdn.net/qq_33299873/article/details/89412776
  • ID 定位 find_element_by_id(“ID”) 当定位不到 抛出 NoSuchElementException name 定位 find_element_by_name(“ID”) 当定位不到 抛出 NoSuchElementException class 定位 find_element_by_class_name(“ID”) ...
  • 自动化测试面试题(一)

    千次阅读 2020-08-27 21:41:20
    自动化测试面试题(一)NO.1 什么是自动化测试NO.2 什么是分层测试?NO.3 自动化测试的适用和不适用场景NO.4 你觉得自动化测试最大的缺陷是什么?NO.4 项目使用的自动化测试框架NO.5 对库的使用NO.6 如何设计高质量...
  • 自动化测试面试题凑字数11
  • 金三已经过去了,相信很多小伙伴在为银四做准备,这里给大家整理了一些金三中有被问到的自动化测试面试题合集,希望会小伙伴们有所帮助! 需要面试题合集的小伙伴,可点击这里领取哦! web自动化测试: 1.Selenium ...
  • APPUI 自动化测试-----常见面试题汇总

    千次阅读 2020-09-21 20:52:12
    3.请简单介绍你曾使用过的一款 APP 自动化测试工具 ? 开放性问题,带点主观意见 1.对比其他熟悉的自动化工具的优缺点 2.自动化的简要方案(简要的同时关键内容请具体)。(提示: appnium 等) 4.Android 测
  • APP、Web自动化测试面试题

    千次阅读 2020-08-25 21:25:34
    一般面试的时候是结合简历上的项目一步一步深入进行问的问题
  • 2021年测试开发面试题大全及答案 这一份全面详细的面试资料共【289】页文档包含:测试基础|接口测试|性能测试|自动化测试|软件测试工具|测试实战题|计算机及Linux面试等等
  • 一、Selenium2+python自动化36-判断元素存在 1、捕获异常 from selenium import webdriver import unittest class Test1(unittest.TestCase): 一、准备浏览器驱动、网站地址 setUp在每个测试函数运行前运行,注意...
  • 自动化测试面试题及答案大全(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 ...
  • 20201年结合书籍《从零开始学selenium自动化测试(基于python)》录制的Python3+Selenium3的视频课程。包含Selenium3自动化测试、Webdriver、POM、HTML测试报告、自动化测试框架、分布式测试、虚拟化测试。【一套】...
  • 自动化测试面试题及答案大全(1)

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

    万次阅读 多人点赞 2019-04-20 09:17:45
    1.Selenium是否支持桌面应用软件的自动化测试。 Selenium不支持桌面软件的自动化测试,Selenium是根据网页元素的属性才定位元素,而其他桌面软件自动化测试工具是根据桌面元素的位置来定位元素,当然现在也有根据...
  • WEB自动化测试面试题及答案大全

    千次阅读 2020-07-11 14:20:32
    1.Selenium是否支持桌面应用软件的自动化测试。 Selenium不支持桌面软件的自动化测试,Selenium是根据网页元素的属性才定位元素,而其他桌面软件自动化测试工具是根据桌面元素的位置来定位元素,当然现在也有根据...
  • 安卓 UI 自动化测试工具 appium:是一个移动端的自动化框架,可用于测试原生应用,移动网页应用 和混合型应用,且是跨平台的。 robotium:是一款国外的 Android 自动化测试框架,主要针对 Android 平台的应用进行...
  • 1.json 和字典的区别? json 本质上还是字符串,只是按 key:value 这种键值对的格式来的字符串, json和python中的字典的相互转化可参考下边文章 json和字典的相互转化 ...自动化测试中,测试数据如何管理? ...
  • 一 、Appium UI 自动化中显式等待和隐式等待的异同?1. 相同点都是智能等待,在一定时间范围内不断查找元素,一旦找到立刻结束查找继续执行代码,没找到才会一直找到超时为止;2. 不...
  • 1.Selenium是否支持桌面应用软件的自动化测试。 Selenium不支持桌面软件的自动化测试,Selenium是根据网页元素的属性才定位元素,而其他桌面软件自动化测试工具是根据桌面元素的位置来定位元素,当然现在也有根据...
  • 自动化面试题记录整理(部分答案自己整理) selenium中如何判断元素是否存在? 没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断 selenium中hidden或者是display = none...
  • 面试题UI自动化

    千次阅读 2019-09-29 10:19:40
    1.Selenium是否支持桌面应用软件的自动化测试。 Selenium不支持桌面软件的自动化测试,Selenium是根据网页元素的属性才定位元素,而其他桌面软件自动化测试工具是根据桌面元素的位置来定位元素,当然现在也有根据...
  • 写在前面 公司要求招一名自动化测试,能力要求不高,1年...自动化测试面试题1:基础篇 目的:验证求职者是否在自动化测试岗位有实际应用于生产的工作经验 1、使用什么测试框架做的上一个项目的自动化测试?说下怎么...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,930
精华内容 3,972
关键字:

ui自动化测试面试题