Unittest单元测试框架UI自动化

1610 篇文章 64 订阅
1508 篇文章 56 订阅

今天我们讲解在python中如何使用unittest框架实现UI自动化,对于如何使用webdriver的API进行网页的操作今天不再赘述,错过的小伙伴请戳下方链接直达~~

1.unittest单元测试框架

  • 为什么要使用单元测试框架?

    使用单元测试框架可以规范测试用例的编写,方便用例的管理与维护为测试报告提供数据。

2.unittest单元测试框架中的概念

  • 测试用例

    一个测试用例是一个独立的测试单元。它检查输入特定的数据时的响应。unittest 提供一个基类:TestCase,用于新建测试用例。

  • 测试套件

    test suite 是一系列的测试用例,或测试套件,或两者皆有。它用于归档需要一起执行的测试。

  • 测试运行器(test runner)

    test runner 是一个用于执行和输出测试结果的组件。这个运行器可能使用图形接口、文本接口,或返回一个特定的值表示运行测试的结果。

3.前期准备

下载webdriver,选择对应的浏览器驱动进行下载(本文演示基于谷歌驱动)

  • chromedriver.exe:https://npm.taobao.org/mirrors/chromedriver/

  • Firefox全历史版本下载:http://ftp.mozilla.org/pub/firefox/releases/

  • geckodriver.exe:

     https://github.com/mozilla/geckodriver/releases

  • 全驱动下载链接:

     https://www.selenium.dev/downloads/

驱动下载完成后,将驱动包放在python.exe同级目录下

4.样例

运行结果分析:

#导入Webdriver,UI自动化主要靠Webdriver实现from selenium import webdriver#导入时间模块import time#导入unittest单元测试模块import unittest
#定义百度网页登录的测试用例集class BaiduLogin(unittest.TestCase):    #定义Setup,用于初始化测试固件。本次设置的含义为在执行每个测试用例之前,打开浏览器,设置url为https://www.baidu.com    def setUp(self):        self.url = 'https://www.baidu.com/'        self.browser = webdriver.Chrome()    #定义teardown,用于销毁测试固件。本次设置的含义为在执行每个测试用例之后,关闭浏览器    #所以当前脚本的执行顺序为:    ##setup-->test_001_query-->teardown-->setup-->test_002_login-->teardown    def tearDown(self):      self.browser.quit()
    def test_001_query(self):     #创建一个名称为test_query_001的测试用例,在浏览器中打开百度首页         self.browser.get(self.url)     #将窗口最大化         self.browser.maximize_window()     #在搜索框中输入关键词“123”     self.browser.find_element_by_id('kw').send_keys('123')     #点击“百度一下”按钮     self.browser.find_element_by_id('su').click()     #print("查询成功")     #等待3S,查看页面返回结果     time.sleep(3)
    def test_002_login(self):     #创建一个名称为test_login_002的用例,在浏览器中打开百度首页     self.browser.get(self.url)     #将窗口最大化     self.browser.maximize_window()      #点击“登录”按钮      self.browser.find_element_by_id('s-top-loginbtn').click()     #等待2S     time.sleep(2)     #切换登录方式为“用户名登录”     self.browser.find_element_by_id("TANGRAM__PSP_11__footerULoginBtn").click()     #清除用户名输入框中之前输入过的内容     self.browser.find_element_by_name("userName").clear()     #输入用户名“12345678910”     self.browser.find_element_by_name("userName").send_keys("12345678910")     #输入密码“123456”     self.browser.find_element_by_name("password").send_keys("123456")     #点击登录按钮     self.browser.find_element_by_id("TANGRAM__PSP_11__submit").click()     #手动拖动验证码,如果时间不够,可以增加等待时长     time.sleep(10)     #print("登录完成")

if __name__ == '__main__':    unittest.main()
结果中出现两个“·”,代表两条用例都执行成功;
如果返回的结果中带有“E”,则表示对应的用例中有报错,需要定位脚本中是否存在问题;、
如果返回的结果为“F”,则表示对应的用例执行失败;
如果返回的结果为“S”,表示用例跳过未执行。

 如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

最后基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源【免费】。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值