UI自动化测试(Selenium,Unittest,DDT)

目录

 

一、导入和使用webdriver驱动

二、使用unittest进行用例管理

1,测试用例

3,使用加载器加载测试用例 

4、ddt进行数据驱动

5,使用fixture脚手架 

6、selenium的其它操作 

        三、selenium的基本常识

1、selenium 是什么

2、selenium 的核心是什么?

3、selenium 自动化测试工具

4、自动化测试步骤测试步骤

5、selenium的常用操作有哪些


背景
有页面的地方就可以使用UI自动化,当然如果是只要测试后端业务的话,使用接口自动化测试就好了,给予合理的入参,返回正确的响应就行,但是如果我们要测试的很多场景是页面上的,那么我们就应该使用UI自动化了。
简介
这里我们使用Selenium进行自动化测试,使用unittest进行用例管理,使用DDT进行数据驱动
前提条件
①安装python环境
②下载webdriver放入path环境的目录下
Chrome:http://chromedriver.storage.proxy.ustclug.org/index.html
Firefox:Releases · mozilla/geckodriver · GitHub
IE:http://selenium-release.storage.proxy.ustclug.org/index.html
③下载selenium框架:pip install selenium

一、导入和使用webdriver驱动

from selenium import webdriver
driver = webdriver.Chrome()#这里使用谷歌的浏览器驱动,缺省情况即为path路径下的谷歌驱动,如果有字符串地址,即使用地址里的谷歌驱动
driver.get('https://www.baidu.com')

二、使用unittest进行用例管理

测试用例有四个概念
testCase测试用例:继承TestCase类,用例都是通过开头以test来识别的,如果要顺序则使用序号,如test001即可。
testSuite测试用例集:把多个测试用例集合起来一起执行,可以使用addTest来把用例加载到测试套件上,也可使用loader加载器批量的加载
testRunner测试用例运行器:用于运行测试用例
TestFixture测试脚手架:用于初始化测试用例及清理和释放资源

1,测试用例

 测试类继承unittest.TestCase类,每一条方法是一个测试用例,都是以test开头
断言方式可使用python自带的assert,也可使用unittest的self.assert方法(断言方式会丰富些)

2,不使用加载器加载测试用例 

3,使用加载器加载测试用例 

4、ddt进行数据驱动

5,使用fixture脚手架 

setup用于测试用例前的环境搭建,unittest中不允许使用__init__进行初始化,所以只能用setup
teardown用于测试用例后的资源释放
skip进行选择性跳过测试用例,因为有些用例暂时不应该执行,如开发尚未开发完成,bug提交待修复的时候

6、selenium的其它操作 

三、selenium的基本常识

1、selenium 是什么

是支持web浏览器自动化的一系列工具和库的综合项目
    可以使用Selenium实现基于web的UI自动化测试
    测试阶段划分:
            单元测试    白盒测试
            集成测试    灰盒测试    接口测试    
            系统测试    黑盒测试    功能测试UI
            验收测试

2、selenium 的核心是什么?

Selenium的核心是WebDriver,这是一个编写指令集的接口
    支持主流的编程语言 java python csharp javascripts ruby...


3、selenium 自动化测试工具

下载python
    pip install selenium
    下载驱动,放入path路径中    或者把浏览器地址作为参数添加到浏览器后面的参数
    验证方式:
        cmd>chromedriver
    from selenium import webdriver
    driver = webdriver.Chrome()


4、自动化测试步骤测试步骤:

    ①获取浏览器对象 driver = webdriver.Chrome()
    ②操作浏览器,使用浏览器的一些方法 driver.method()
    ③元素定位的方法找到web元素    webElement
    ④操作web元素,使用元素的方法,webElement.method()

5、selenium的常用操作有哪些

基本操作 
        driver.current_url    获取当前浏览器的地址
        driver.switch_to.alter.accept()    确认按钮
        driver.switch_to.alter.dismiss()取消按钮
        driver.get(url)打开浏览器
        driver.close()关闭当前窗口
        driver.quit()关闭浏览器,并清理临时文件
        driver.forward()前进
        driver.back()后退
        driver.refresh()刷新
        .click()
        .clear()
        .send_keys('')


获取句柄
    driver.window_handles    获取当前driver驱动打开的所有窗口的句柄
    driver.current_window_handle    获取当前窗口的句柄
切换到新窗口
    for handle in self.driver.window_handles:
        if handle != driver.current_window_handle:
            self.driver.switch_to.window(name/handle)
frame网页框架
    定义:HTML页面中的一种框架,主要是在当前的页面中指定区域显示另一页面元素
进入frame框架
    framelist = driver.find_elements_by_tag_name('frame')#获取所有的frame框架索引集合
    self.driver.switch_to.frame(framelist[0]) 进入第一个框架
    driver.switch_to.frame('窗口名字')或id
离开frame框架
    driver.switch_to.parent_frame() 去往父框架
    driver.switch_to.default_content()去往默认框架,即开始的框架
定位web元素的八种方式
    driver.find_elements_by_id()
    driver.find_element_by_name()    
    driver.find_element_by_class_name()    根据class
    driver.find_element_by_tag_name()    根据标签名字
    driver.find_element_by_link_text()    根据链接名字来定位
    driver.find_element_by_partial_link_text()    根据模糊链接名字定位
    driver.find_element_by_xpath() 有绝对路径xpath和相对路径full xpath的方法  强大
    driver.find_element_by_css_selector() 用的少,比xpath简洁灵活 强大
八种方式每一种都有两种方式
    driver.find_element(By.ID,'a')
    driver.find_element_by_id('a')
八种方式每一种都有可以获取单个元素或者获取元素集合
如何进行下拉菜单操作
    depart= driver.find_element_by_name("")
    Select(depart).select_by_value("")
如何获取浏览器对象
    webdriver.Chrome()
    webdriver.Ie()
    webdriver.FireFox()
    webdriver.Safari()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值