当前位置: 首页> 财经> 访谈 > Selenium + Python 自动化测试12(unittest组织更多用例)

Selenium + Python 自动化测试12(unittest组织更多用例)

时间:2025/7/10 10:00:17来源:https://blog.csdn.net/weixin_45999406/article/details/141141758 浏览次数:0次

        我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。

上一篇我们讨论了unittest中test suite 的构建,可以测试多条测试用例。

         本篇文章我们接着讲。使用discover()方法构建更多的测试用例。

      1、引入需要完成的任务

上一篇我们写了登录模块的测试用例,假如说我们又写了一个模块是退出登录的测试:

        这样在我们项目文件中就有login.py 和logout.py 两个测试脚本文件。当然也可能有很多其它的需要测试的模块,那我们需要如何解决构造测试用例集的问题呢,总不能一个个去加入吧。

         当然不用,可以通过discover()设置执行某一目录下所有的要测试文件。

退出登录的代码参考,当然这里还没有优化代码,后面不断改善:

# coding=utf-8  --指定了文件内容使用的字符编码格式,告知Python解释器如何解读文件中的文本内容。import timeimport unittestfrom selenium import webdriverdef driverfunc():return webdriver.Chrome("C:\\Users\\dewi\\AppData\\Local\\Google\\Chrome\\Application\\chromedriver.exe")#使用unittest的框架,每个案例的标准形式class LogoutTest(unittest.TestCase):def setUp(self):self.driver = driverfunc()print("退出登录测试开始")#退出登录测试def test_logout(self):#先登录:driver = self.driverusername = "standard_user"password = "secret_sauce"print("登录的用户名是:%s,密码是:%s"%(username,password))#打开浏览器,并最大化driver.get("https://www.saucedemo.com/")driver.maximize_window()time.sleep(3)#输入用户名,driver.find_element_by_name("user-name").send_keys(username)  # by name 定位#输入密码driver.find_element_by_name("password").send_keys(password)  # by name 定位#点击登录按钮driver.find_element_by_id("login-button").click()  # by ID 定位time.sleep(3)#点击退出按钮driver.find_element_by_xpath('//*[@id="react-burger-menu-btn"]').click()driver.find_element_by_xpath('//*[@id="logout_sidebar_link"]').click()time.sleep(3)#断言:# 验证有显示:LoginUIResult = driver.find_element_by_xpath('//*[@id="login-button"]').is_displayed()self.assertEqual(True, UIResult, "退出登录验证失败,fail")

2、discover()使用方法

1)TestLoader

         这个类根据各种标准加载测试用例,并将它们返回测试套件。正常情况下不需要创建这个类的实例的。unittest提供了可共享的defaultTestLoader类,可以使用其子类和方法创建实例。其中discover()就是其中之一。

使用方法:

discover(start_dir,pattern="test*.py",top_level_dir=None)

start_dir:要测试的模块名或测试用例目录

pattern="test*.py":以test开通的所有的.py类型的文件全部执行

top_level_dir=None:测试模块的顶层目录,如果没有默认是None

2)举例说明

编写入口执行脚本:

# coding=utf-8import unittest#编写测试执行入口test_dir="./"   #测试用例的目录是当前目录discover = unittest.defaultTestLoader.discover(test_dir,pattern="test*.py")if __name__ == '__main__':run_test = unittest.TextTestRunner()run_test.run(discover)

执行时就会同时执行test_login.py 和test_logout.py。

查看结果:3条案例全部执行了

今天就讲到这里了。

每天进步一点点,加油!

关键字:Selenium + Python 自动化测试12(unittest组织更多用例)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: