selenium+unittest自动化测试(一)---环境搭建及用例编写规则

目录

一、selenium、unittest简介

二、环境搭建

        1、安装selenium库

        2、安装unittest2框架

        3、安装浏览器驱动

三、编写规则

        1、测试类

        2、以test开头

        3、setup和teardown

        4、如何让多个用例共享setup、teardown

        5、setUp中实现用例之间共享变量

        6、如何实现参数化

        7、如何跳过用例

        8、常用的断言方法

        9、如何运行测试用例

        10、示例


一、selenium、unittest简介

        Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架。它是一款用于运行端到端功能测试的超强工具。 

        unittest是单元测试框架,不仅适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,断言,其实就是对测试结果进行校验。

二、环境搭建

        1、安装selenium库

        首先要准备好python环境,然后在此基础上安装selenium库,安装命令:

        pip install selenium

        2、安装unittest2框架

        安装命令:pip install unittest2

        3、安装浏览器驱动

        chromedriver下载地址:http://npm.taobao.org/mirrors/chromedriver/

        我的chrom浏览器是76.0.38.09.132(64位)版本的,经过测试chromedriver76.0.3809.126版本能够正常使用。

三、编写规则

        1、测试类

        编写测试用例时,我们需要编写一个测试类,从unittest.TestCase继承。

        2、以test开头

        以test开头的方法就是测试方法,不以test开头的方法不被认为是测试方法,测试的时候不会被执行。

        3、setup和teardown

        可以在单元测试中编写两个特殊的setUp()和tearDown()方法。这两个方法会分别在每调用一个测试方法的前后分别被执行。

        4、如何让多个用例共享setup、teardown

        unittest的setup、teardown会在每个用例执行前后各执行一次。如果只需执行一次,可以使用setupclass, teardownclass,注意@classmethod的使用。

        5、setUp中实现用例之间共享变量

        setupclass里设置globals().[“xxx”]变量,不同用例之间可以实时共享参数变动

        setupclass里设置 ClassName.XXX变量,不同用例之间可以实时共享参数变动

        6、如何实现参数化

@parameterized.expend([
                       param("sss"),
                       ])

        7、如何跳过用例

@unittest.skip(reason)
@unittest.skipif(condition, reason)
@unittest.skipUnless(condition, reason)
@unittest.expectedFailure

        8、常用的断言方法

assertTrue 
assertEqual

        9、如何运行测试用例

python -m unittest Web_check.py

        10、示例

import unittest2
import selenium import webdriver
from parameterized import parameterized,param

class webcheck(unittest2.TestCase):
    """界面登录测试"""
    @classmethod
    def setUp(cls):
        # 打开浏览器
        cls.driver = webdriver.Chrome()
        # 将浏览器设置为占满整个屏幕
        cls.driver.maxmize_window()
        #访问网页
        cls.driver.get('https://xxx')
    
    @parameterized.expand([
        param("hillwill_wxt", "123456")
    ])
    def test_openit(self, user, password):
        # 找到name为userName的元素,并输入用户名hillwill_wxt
        self.driver.find_element_by_name("userName").send_keys(user)
        # 找到name为password的元素,并输入密码123456
        self.driver.find_element_by_name("password").send_keys(password)
        # 点击登录按钮
        self.driver.find_element_by_xpath("//*[@id='app']/div[2]/div/ng-include/div/div/div/form/div[2]/button").click()
    
    @classmethod
    def tearDown(cls):
        cls.driver.close()
        
if __name__=='__main__':
    unittest2.main() 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值