unittest模块实现多个ui脚本函数自动化运行(参考代码示例)
第一步:导入unittest类
第二步:定义一个类继承unittest.TestCase类,顾名思义这个TestCase类是测试用例类的意思
setUp和teardown都是TestCase中定义的方法
setUp用来做测试执行前的初始化工作:下面示例用来获取浏览器驱动
teardown用来做测试执行后的清理工作:下面示例用来退出浏览器
第三步:编写测试方法:示例2个方法(登录百度操作搜索,登录qq点击新闻连接),注意只有方法名前面以test开头才会执行,而且运行顺序是按字符串大小所以定义了01,02做一个顺序排列
第四步:加上if __name__ == "__main__":unittest.main() 作用:只有当前类本身运行的时候,才会执行这个类的test_01_search_baidu,test_02_search_qq_news测试方法,其他类不会运行
# -*- coding:utf-8 -*- import unittest from selenium import webdriver import time #QingQing类的名字任意命名,但命名()里的unittest.TestCase就是去继承这个类,类的作用就是可以使runner.run识别 class QingQing(unittest.TestCase): #unittest.TestCase类定义的setUpClass和tearDownClass方法前一定要加@classmethod, #setUpClass在这个类里面是第一个执行的方法 #tearDownClass在这个类里面是最后一个执行的方法 #中间的执行顺序是通过字符的大小进行顺序执行,命名必须test_开头 #打开浏览器,获取配置 @classmethod def setUpClass(self): # 实例化ChromeOptions options = webdriver.ChromeOptions() # 关闭浏览器提示信息 options.add_argument('disable-infobars') # 浏览器全屏 options.add_argument('start-fullscreen') driverpath = r'D:\angel\angelauto\littlebee1\driver\chromedriver.exe' #driver驱动获取后可以被其他方法调用 self.driver = webdriver.Chrome(driverpath, options=options) def test_01_search_baidu(self): # 访问百度首页 self.driver.get(r"http://www.baidu.com") # 百度输入框输入 self.driver.find_element_by_id("kw").send_keys("懒勺") # 点百度一下 self.driver.find_element_by_id("su").click() #等待时间只是为了让你可以看到目前效果,可以省略 time.sleep(2) #执行商品收费功能 def test_02_search_qq_news(self): # 访问qq首页 self.driver.get(r"http://www.qq.com") # 点新闻链接 self.driver.find_element_by_xpath("//a[text()='新闻']").click() # 等待时间只是为了让你可以看到目前效果,可以省略 time.sleep(3) #退出浏览器 @classmethod def tearDownClass(self): self.driver.quit() if __name__ == "__main__": unittest.main()