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

目录
一、selenium、unittest简介
二、环境搭建
1、安装selenium库
2、安装unittest2框架
3、安装浏览器驱动
三、编写规则
1、测试类
2、以test开头
3、setup和teardown
4、如何让多个用例共享setup、teardown
5、setUp中实现用例之间共享变量
6、如何实现参数化
7、如何跳过用例
8、常用的断言方法
【selenium+unittest自动化测试(一)---环境搭建及用例编写规则】9、如何运行测试用例
10、示例
一、selenium、unittest简介 Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架。它是一款用于运行端到端功能测试的超强工具。
unittest是单元测试框架,不仅适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,断言,其实就是对测试结果进行校验。

二、环境搭建 1、安装selenium库
首先要准备好python环境,然后在此基础上安装selenium库,安装命令:
pip install selenium
selenium+unittest自动化测试(一)---环境搭建及用例编写规则
文章图片

2、安装unittest2框架
安装命令:pip install unittest2
3、安装浏览器驱动
chromedriver下载地址:http://npm.taobao.org/mirrors/chromedriver/
我的chrom浏览器是76.0.38.09.132(64位)版本的,经过测试chromedriver76.0.3809.126版本能够正常使用。
selenium+unittest自动化测试(一)---环境搭建及用例编写规则
文章图片

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


三、编写规则 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,paramclass 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()



    推荐阅读