我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。
上一篇我们讨论了unittest基本使用方法。
本篇文章我们接着讲。一些概念和一些常用的构造测试集的方法。
1、基本概念
1)Test Case
一个Test Case的实例就是一个测试用例。可以完成一整个的测试流程。包括测试前准备 测试环境的搭建(setUp)、实现测试过程的代码(run),以及测试后环境的还原(tearDown)。
单元测试的本质就是一个测试用例就是一个完整的测试单元,通过运行这个测试单元,可以对某个功能进行测试验证。
2)Test Suite
一个功能一般需要多条测试案例,可以把多个测试用例集合在一起执行,这就产生了测试套件:Test Suite概念。可以通过addTest加载Test Case到Test Suite中执行。
3)Test Runner
unittest 框架中,通过TextTestRunner 类提供的run()方法来执行Test Suite/Test Case,
Test Runner 可以使用图形界面、文本界面,返回一个特殊的值来表示测试执行的结果。
Test Fixture
对一个测试用例环境的搭建和销毁就是一个Fixture。我们通过Test Case中setUp、tearDown来实现。
2、Test Suite 用法举例
1)我们先准备 2条测试用例
下面是我们写的登录两条用例:
#输入正确的密码登录成功测试 def test_login_Y(self): driver = self.driver username = "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) #加入断言 //*[@id="header_container"]/div[1]/div[2]/div # 验证有显示:Products UIResult = driver.find_element_by_xpath('//*[@id="header_container"]/div[2]/span').text self.assertEqual("Products", UIResult, "密码正确登录验证失败,fail") # 输入错误的密码登录失败测试 def test_login_N(self): driver = self.driver username = "standard_user" password = "secret_NG" 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) # 加入断言 //*[@id="header_container"]/div[1]/div[2]/div # 验证有报错显示: UIResult = driver.find_element_by_xpath('//*[@id="login_button_container"]/div/form/div[3]/h3').text self.assertEqual("Epic sadface: Username and password do not match any user in this service", UIResult, "密码错误登录验证失败,fail")
下面我们把它折叠起来就比较容易看出:两条用例
2)下面我们构造测试用例集
if __name__ =='__main__': #unittest.main() #构造测试用例集 suite=unittest.TestSuite() suite.addTest(LoginTest('test_login_Y')) suite.addTest(LoginTest('test_login_N')) #执行测试 runner=unittest.TextTestRunner() runner.run(suite)
连一起前面的代码执行:
查看下面的测试结果,可以看到执行了2条案例,也有一个简单的结果呈现。
今天就先讲到这里了。
每天进步一点点,加油!
标签:11,name,Python,unittest,driver,测试,Test,div,password From: https://blog.csdn.net/weixin_45999406/article/details/141108870