目录
一、selenium、unittest简介
二、环境搭建
1、安装selenium库
2、安装unittest2框架
3、安装浏览器驱动
三、编写规则
1、测试类
2、以test开头
3、setup和teardown
4、如何让多个用例共享setup、teardown
5、setUp中实现用例之间共享变量
6、如何实现参数化
7、如何跳过用例
8、常用的断言方法
9、如何运行测试用例
10、示例
Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架。它是一款用于运行端到端功能测试的超强工具。
unittest是单元测试框架,不仅适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,断言,其实就是对测试结果进行校验。
首先要准备好python环境,然后在此基础上安装selenium库,安装命令:
pip install selenium
安装命令:pip install unittest2
chromedriver下载地址:http://npm.taobao.org/mirrors/chromedriver/
我的chrom浏览器是76.0.38.09.132(64位)版本的,经过测试chromedriver76.0.3809.126版本能够正常使用。
编写测试用例时,我们需要编写一个测试类,从unittest.TestCase继承。
以test开头的方法就是测试方法,不以test开头的方法不被认为是测试方法,测试的时候不会被执行。
可以在单元测试中编写两个特殊的setUp()和tearDown()方法。这两个方法会分别在每调用一个测试方法的前后分别被执行。
unittest的setup、teardown会在每个用例执行前后各执行一次。如果只需执行一次,可以使用setupclass, teardownclass,注意@classmethod的使用。
setupclass里设置globals().[“xxx”]变量,不同用例之间可以实时共享参数变动
setupclass里设置 ClassName.XXX变量,不同用例之间可以实时共享参数变动
@parameterized.expend([
param("sss"),
])
@unittest.skip(reason)
@unittest.skipif(condition, reason)
@unittest.skipUnless(condition, reason)
@unittest.expectedFailure
assertTrue
assertEqual
python -m unittest Web_check.py
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()