class FirstDdtCase(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get('http://www.5itest.cn/register') self.login = RegisterBusiness(self.driver) def tearDown(self): time.sleep(2) for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.join( os.path.dirname(os.getcwd()) + '/report/' + case_name + '.png') self.driver.save_screenshot(file_path) self.driver.close() ''' @ddt.data( ['12','yewr3','123456','code','user_email_error','请输入有效的电子邮件地址'], ['@qq.com', 'yewr3', '123456', 'code', 'user_email_error', '请输入有效的电子邮件地址'], ['*****@*****.**', 'yewr3', '123456', 'code', 'user_email_error', '请输入有效的电子邮件地址'] ) @ddt.unpack ''' @ddt.data(*data) def test_login_email_error(self, data): email, username, password, code, assertCode, assertText = data email_error = self.login.register_function(email, username, password, code, assertCode, assertText) self.assertFalse(email_error, '此条case执行失败')
class FirstDdtCase(unittest.TestCase): def setUp(self) -> None: self.driver = webdriver.Chrome() self.driver.get('http://www.5itest.cn/register') self.login = RegisterBusiness(self.driver) def tearDown(self) -> None: time.sleep(2) # 捕获程序是否有异常,有则截图保存 for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.join(BATH_PATH, 'report', case_name + '.png') self.driver.save_screenshot(file_path) self.driver.close() @ddt.data(*data) @ddt.unpack def test_register_case(self, *data): email, username, password, assertCode, assertText = data email_error = self.login.register_function(email, username, password, file_name, assertCode, assertText) self.assertFalse(email_error, "测试失败")
class FirstDdtCase(unittest.TestCase): file_name = "C://Users//邱步一//PycharmProjects//51test//Image//test001.png" # 邮箱、用户名、密码、验证码、错误信息定位元素、错误提示信息 def setUp(self): self.driver = webdriver.Chrome() self.driver.get('http://www.5itest.cn/register') self.login = RegisterBusiness(self.driver) def tearDown(self): time.sleep(2) #if sys.exc_info()[0]: for method_name,error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.join(os.path.dirname(os.getcwd())+"/report/"+case_name+"error.png") print(file_path) self.driver.save_screenshot(file_path) #print("这个是case的后置调键1") self.driver.close() ''' @ddt.data( ['12','Mushishi01','111111','code','user_email_error','请输入有效的电子邮件地址'], ['@qq.com','Mushishi01','111111','code','user_email_error','请输入有效的电子邮件地址'], ['*****@*****.**','Mushishi01','111111','code','user_email_error','请输入有效的电子邮件地址'] ) @ddt.unpack ''' @ddt.data(*data) def test_register_case(self,data): email,username,password,self.file_name,assertCode,assertText = data print(self.file_name) email_error = self.login.register_function(email,username,password,"C://Users//邱步一//PycharmProjects//51test//Image//test001.png",assertCode,assertText) self.assertFalse(email_error,"测试失败")
class FirstDdtCase(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get('http://www.5itest.cn/register') self.login = RegisterBusiness(self.driver) self.file_name = "E:/SELENIUMPYTHON/Image/test001.png" def tearDown(self): time.sleep(2) for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.join(os.getcwd() + "/report/" + case_name + ".png") self.driver.save_screenshot(file_path) self.driver.close() print("执行完一条case") ''' @ddt.data( ['test001','username01','password','code','user_email_error','请输入有效的电子邮件地址'], ['@qq.com','username01','password','code','user_email_error','请输入有效的电子邮件地址'], ['*****@*****.**','username01','password','code','user_email_error','请输入有效的电子邮件地址'] ) @ddt.unpack ''' @ddt.data(*data) def test_register_case(self, data): email, username, password, code, assertCode, assertText = data email_error = self.login.register_function(email, username, password, code, assertCode, assertText) self.assertFalse(email_error, "测试失败")
class FirstDataCase(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() #因为driver在其他函数中要使用,所以加上self使其变为全局的 self.driver.get("http://www.5itest.cn/register") self.driver.maximize_window() self.login = RegisterBusiness(self.driver) def tearDown(self): time.sleep(2) for method_name,error in self._outcome.errors: if error: case_name = self._testMethodName #获取case的名字,用于后续的截图 screenshot_name = case_name+'.png' #截图图片的名字 dir_path = os.path.dirname(os.getcwd()) #获取上一级目录,即工程目录 file_path = os.path.join(dir_path,'report',screenshot_name) #截图保存路径 self.driver.save_screenshot(file_path) self.driver.close() #邮箱、用户名、密码、验证码、错误信息定位元素、错误提示信息 ''' @ddt.data( ['122','Mushishi11','111111',r'D:\selenium_image\test02.png','user_email_error','请输入有效的电子邮件地址'], ['@qq.com','Mushishi11','111111',r'D:\selenium_image\test02.png','user_email_error','请输入有效的电子邮件地址'], ['*****@*****.**','Mushishi11','111111',r'D:\selenium_image\test02.png','user_email_error','请输入有效的电子邮件地址'] ) @ddt.unpack ''' @ddt.data(*data) def test_register_case(self,data): email,username,password,file_name,assertCode,assertText = data email_error = self.login.register_function(email,username,password,file_name,assertCode,assertText) self.assertFalse(email_error,'测试失败')
class FirstDdtCase(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get('http://www.5itest.cn/register') # self.logger.info("this is chrome") self.login = RegisterBusiness(self.driver) def tearDown(self): time.sleep(2) for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.join("E:/pythonProject/SeleniumPython" + "/report/" + case_name + ".png") self.driver.save_screenshot(file_path) # print("这个是case的后置条件") self.driver.close() # @ddt.data( # ['123','gryufeng01','111111','code','user_email_error','请输入有效的电子邮件地址'], # ['@qq.com', 'gryufeng02', '111111', 'code', 'user_email_error', '请输入有效的电子邮件地址'], # ['*****@*****.**', 'gryufeng03', '111111', 'code', 'user_email_error', '请输入有效的电子邮件地址'] # ) # @ddt.unpack @ddt.data(*data) def test_register_case(self, data): email, username, password, code, assertCode, assertText = data email_error = self.login.register_function(email, username, password, code, assertCode, assertText) self.assertFalse(email_error, '测试失败')
class FirstDdtCase(unittest.TestCase): def setUp(self): #print('测试开始前执行') self.driver = webdriver.Chrome() self.driver.get('http://www.5itest.cn/register') self.driver.maximize_window() self.login = RegisterBusiness(self.driver) def tearDown(self): #print('测试完成后执行') #if sys.exc_info()[0]: for method_name,error in self._outcome.errors: #_outcome.errors能获取当前运行case名称和错误信息 if error: #如果有错误信息 case_name = self._testMethodName #获取当前运行错误case的名称 path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #获取当前文件目录的上一级目录 file_path = path +'\\report\\'+case_name+'.png' #存储路径 self.driver.save_screenshot(file_path) #截图 time.sleep(3) self.driver.quit() ''' @ddt.data( #ddt数据 ['12','kiv111','cde33333','321','user_email_error','请输入有效的电子邮件地址'], ['qq.com','kiv111','cde33333','321','user_email_error','请输入有效的电子邮件地址'], ['12qq.com','kiv111','cde33333','321','user_email_error','请输入有效的电子邮件地址'], ) @ddt.unpack #解包 ''' @ddt.data(*data) def test_register_case(self,data): email,name,password,code,assertCode,assertText = data #为data里的每一个字段赋值,赋值到相应字段名 email_error = self.login.register_function(email,name,password,code,assertCode,assertText) #也就是cls.file_name return self.assertFalse(email_error,'case执行失败') #判断结果是否为false,不为false时候 打印'case执行'
class FirstDdtCase(unittest.TestCase): def setUp(self): self.register_b = RegisterBusiness() # self.file_name = selenium_driver.get_picture('re') def tearDown(self): time.sleep(2) for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName error_path = os.path.dirname( os.path.dirname(os.path.dirname( os.path.abspath(__file__)))) case_error_path = os.path.join(error_path + "/report/" + case_name + '.png') selenium_driver.img_png(case_error_path) ''' @ddt.data( ["123", 'anmuxi', '12345', 'code', 'user_email_error'], ["@123.com", 'anmuxi', '12345', 'code', 'user_email_error'], ["*****@*****.**", 'anmuxi', '12345', 'code', 'user_email_error'] ) @ddt.unpack ''' @ddt.data(*data) def test_register_case(self, data): email, name, password, file_name, assertcode = data email_error = self.register_b.register_function( email, name, password, file_name, assertcode) self.assertFalse(email_error) # 断言是否为false
class FirstDdtCase(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get('http://www.5itest.cn/register') self.rBusiness = RegisterBusiness(self.driver) def tearDown(self): # time.sleep(5) self.driver.close() # ["*****@*****.**","http://www.5itest.cn/register","1qaz2wsx","code","user_name_error","字符长度必须小于等于18,一个中文字算2个字符"], # ["*****@*****.**","OneDate","1qaz2wsx","code","user_name_error","验证码错误"] ''' @ddt.data( ["12","123123","666666","code","user_email_error","请输入有效的电子邮件地址"] ) 解包,数据长度要一致 @ddt.unpack def test_register_error(self,email,username,password,code,asssertCode,assertText): error = self.rBusiness.register_function(email,username,password,code,asssertCode,assertText) logging.info ( '用例被运行了' ) self.assertFalse(error,'测试失败') ''' #excle 表 取数据的形式 使用方式 @ddt.data(*data) def test_register_error(self, data): email, username, password, code, asssertCode, assertText = data error = self.rBusiness.register_function(email, username, password, code, asssertCode, assertText) logging.info('用例被运行了') self.assertFalse(error, '测试失败')
class FirstDdtCase(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get("http://www.5itest.cn/register?goto=/course/explore") self.driver.maximize_window() self.login = RegisterBusiness(self.driver) def tearDown(self): time.sleep(2) #if sys.exc_info()[0]: for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.join(os.getcwd() + "/report/" + case_name + ".png") self.driver.save_screenshot(file_path) self.driver.close() ''' @ddt.data( ['234','test0007','111111','code','user_email_error','请输入有效的电子邮件地址'], ['@qq.com','test0007','111111','code','user_email_error','请输入有效的电子邮件地址'], ['*****@*****.**','test0007','111','code','user_email_error','请输入有效的电子邮件地址'] ) @ddt.unpack ''' @ddt.data(*data) def test_register_case(self, data): email, username, password, self.file_name, assertCode, assertText = data email_error = self.login.register_function(email, username, password, self.file_name, assertCode, assertText) self.assertFalse(email_error, "测试失败")
class FirstDdtCase(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get('http://www.5itest.cn/register') self.driver.maximize_window() self.rb = RegisterBusiness(self.driver) self.file_name = 'E:/PycharmProjects/seleniumPython/image/test001.png' def tearDown(self): time.sleep(2) for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.join(os.getcwd() + "/report/" + case_name + ".png") self.driver.save_screenshot(file_path) self.driver.close() ''' @ddt.data( ['12', 'Mushishi01', '111111', 'E:/PycharmProjects/seleniumPython/image/test001.png', 'user_email_error', '请输入有效的电子邮件地址'], ['@qq.com', 'Mushishi01', '111111', 'E:/PycharmProjects/seleniumPython/image/test001.png', 'user_email_error', '请输入有效的电子邮件地址'], ['*****@*****.**', 'Mushishi01', '111111', 'E:/PycharmProjects/seleniumPython/image/test001.png', 'user_email_error', '请输入有效的电子邮件地址'] ) @ddt.unpack ''' @ddt.data(*data) def test_register_case(self, data): email, username, password, self.file_name, assertCode, assertText = data email_error = self.rb.register_function(email, username, password, self.file_name, assertCode, assertText) self.assertFalse(email_error, '测试失败')
class firstDdtCase(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get("http://www.5itest.cn/register?goto=/") self.login = RegisterBusiness(self.driver) def tearDown(self): time.sleep(2) for method_name,error in self._outcome.errors: if error: casename = self._testMethodName file_path = os.path.join(os.getcwd() + "\\report\\"+casename+".png") self.driver.save_screenshot(file_path) self.driver.close() ''' @ddt.data( ['111','22','333','11','email_error','请输入有效的电子邮件地址'], ['*****@*****.**', '22', '333', '11', 'email_error', '请输入有效的电子邮件地址'], ['111', '22', '333', '11', 'email_error', '请输入有效的电子邮件地址'] )''' @ddt.data(*data) def test_register_case(self,data): email,username,password,code,assertcode,asserttext = tuple(data) print(data) email = str(email) username = str(username) password = str(password) code = str(code) assertcode = str(assertcode) asserttext = str(asserttext) email_error = self.login.register_function(email,username,password,code,assertcode,asserttext) return self.assertTrue(email_error,"case执行成功")
class FirstDbtCase(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome(executable_path=driver_path) self.driver.get('http://www.5itest.cn/register') self.driver.maximize_window() self.login = RegisterBusiness(self.driver) def tearDown(self): # self.driver.save_screenshot() time.sleep(2) # sys.exc_info()[0]: for method_name, error in self._outcome.errors: if error: # caseの名前を取得 case_name = self._testMethodName file_path = os.path.abspath(os.path.join( os.getcwd(), "..")) + r"\report\%s.png" % case_name self.driver.save_screenshot(file_path) self.driver.close() # 'email', 'username', 'password', 'code', 'assertCode', 'assertText' # @ddt.data( # ['123', 'huasdasd01', '1111111', 'code', 'user_email_error', '请输入有效的电子邮件地址'], # ['*****@*****.**', 'huasdasd01', '1111111', 'code', 'user_email_error-error', '请输入有效的电子邮件地址'] # ) # @ddt.unpack # def test_register_case(self, email, username, password, code, assertCode, assertText): @ddt.data(*data) def test_register_case(self, data): email, username, password, code, assertCode, assertText = data email_error = self.login.register_function(email, username, password, code, assertCode, assertText) self.assertFalse(email_error, 'テスト失敗')
class FirstDataTest(unittest.TestCase): # @classmethod # def setUpClass(cls): # option = webdriver.ChromeOptions() # # 无界面使用 # option.add_argument('--headless') # # 设置浏览器分辨率(窗口大小 # option.add_argument("--window-size=1920,1080") # cls.driver = webdriver.Chrome(chrome_options=option) # cls.driver.get("http://www.5itest.cn/register") # cls.register_b = RegisterBusiness(cls.driver) def setUp(self): print("开始执行case") option = webdriver.ChromeOptions() # 无界面使用 option.add_argument('--headless') # 设置浏览器分辨率(窗口大小 option.add_argument("--window-size=1920,1080") self.driver = webdriver.Chrome(chrome_options=option) self.driver.get("http://www.5itest.cn/register") self.register_b = RegisterBusiness(self.driver) # self.file_name = r"D:\测试\自动化测试\Web自动化测试\selenium3_python3\image\code.png" # @classmethod # def tearDownClass(cls): # time.sleep(5) # cls.driver.quit() def tearDown(self): print("case执行结束") time.sleep(2) self.driver.quit() # for method_name, error in self._outcome.errors: # if error: # # case_name是测试函数名 # case_name = self._testMethodName # now_time = time.strftime("%Y%m%d.%H.%M.%S") # self.driver.save_screenshot(r"D:\测试\自动化测试\Web自动化测试\selenium3_python3\image\%s.png" % (case_name + now_time)) # 邮箱、用户名、密码、验证码、错误信息定位元素、错误提示信息 # ["email", "nickname", "password", "code", "assertCode", "assertText"] # @ddt.data( # ['12', 'Mushishi01', '111111', 'code', 'email_error', '请输入有效的电子邮件地址'], # ['@qq.com', 'Mushishi01', '111111', 'code', 'email_error', '请输入有效的电子邮件地址'], # ['*****@*****.**', 'Mushishi01', '111111', 'code', 'email_error', '请输入有效的电子邮件地址'], # ) # @ddt.unpack @ddt.data(*data) def test_register_case(self, data): email, nickname, password, code, assertCode, assertText = data register_error = self.register_b.register_function( email, nickname, password, code, assertCode, assertText) self.assertFalse(register_error, "此条case执行失败")
class FirstDdtCase(unittest.TestCase): @classmethod def setUpClass(cls): image_file_path = os.path.join(os.path.dirname(os.getcwd()) + "/bg-image/register_code.png") cls.file_name = image_file_path print("所有case的前置") @classmethod def tearDownClass(cls): print("所有case的后置") def setUp(self): self.driver = webdriver.Chrome() self.driver.get('http://www.5itest.cn/register') self.registerb = RegisterBusiness(self.driver) print("执行了当前case的前置条件") def tearDown(self): time.sleep(5) for method, error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.join(os.getcwd() + "/report/" + case_name + ".png") self.driver.save_screenshot(file_path) else: return None self.driver.close() print("执行了当前case的后置条件") ''' @ddt.data( ['*****@*****.**','abc123','111111','file_name','email_error'], ['*****@*****.**', 'abc123', '111111', 'file_name', 'name_error'], ['*****@*****.**', 'abc123', '111111', 'file_name', 'password_error'], ['*****@*****.**', 'abc123', '111111', 'file_name', 'code_error'], ) @ddt.unpack def test_register_case(self,email,username,password,code,assertCode): email_error = self.registerb.register_function(email,username,password,code,assertCode) time.sleep(5) self.assertFalse(email_error,'case01-出错了') ''' #结合excel @ddt.data(*data) def test_register_case(self,data): email, username, password, code, assertCode = data email_error = self.registerb.register_function(email,username,password,code,assertCode) time.sleep(5) self.assertFalse(email_error,'case01-出错了')
class DdtDataFirst(unittest.TestCase): """提供注册所用邮箱、用户名、密码、验证码,以及错误信息定位元素、错误提示信息""" ex = ExcelUtil() data = ex.get_data() @classmethod def setUpClass(cls) -> None: # cls.driver = webdriver.Chrome() # cls.driver.maximize_window() warnings.simplefilter("ignore", ResourceWarning) @classmethod def tearDownClass(cls) -> None: time.sleep(3) def setUp(self) -> None: self.driver = webdriver.Chrome() self.driver.get("http://www.5itest.cn/register") self.driver.maximize_window() path = "../config/LocalElement.ini" i_vcode = IdentifyVCode(self.driver, self._testMethodName, path) # self.v_code = i_vcode.get_jj_varify_code("code_image") self.register_b = RegisterBusiness(self.driver, path) def tearDown(self) -> None: curr_time = datetime.datetime.now() str_time = str(curr_time.time()) for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.join("../report/" + case_name + str_time + ".png") self.driver.save_screenshot(file_path) time.sleep(5) self.driver.close() # @ddt.data( # ["2323", "这是新用户名", "11111", "xddsd", "email_error", "请输入有效的的电子邮件地址"], # ["sfds", "这是新用户名", "11111", "xddsd", "email_error", "请输入有效的的电子邮件地址"], # ["*****@*****.**", "这是新用户名", "11111", "xddsd", "email_error", "请输入有效的的电子邮件地址"] # ) # @ddt.unpack @ddt.data(*data) def test_login_success(self, email, name, password, code, assertCode, assertText): login_statue = self.register_b.register_function( email, name, password, code, assertCode, assertText) self.assertFalse(login_statue, "测试失败")
class FirstDdtCase(unittest.TestCase): @classmethod def setUpClass(cls): cls.file_name = "E:/programs/pycharmprojects/selenium_python/pageobject/image/test01.png" @classmethod def tearDownClass(self): print('所有case运行后的后置条件') def setUp(self): # self.file_name = "E:/programs/pycharmprojects/selenium_python/pageobject/image/test01.png" self.driver = webdriver.Chrome() self.driver.maximize_window() time.sleep(2) self.driver.get('http://www.5itest.cn/register') self.RB = RegisterBusiness(self.driver) def tearDown(self): # 通过self._outcome.errors捕捉报错信息,并提取其中的值到method_name,error两个变量中 for method_name, error in self._outcome.errors: # 当错误不为空时,执行截图操作,截图文件保存路径为当前工程目录下report文件夹 # 并以当前case命名 if error: # 获取当前case名称 case_name = self._testMethodName # 设置路径为当前工程目录下report文件夹,并以当前运行case命名的文件 file_path = os.path.abspath( os.path.dirname(os.getcwd()) + '/report/' + case_name + '.png') self.driver.save_screenshot(file_path) self.driver.close() ''' @ddt.data( ['12','12345','123456','code','email_error','请输入有效的电子邮件地址'], ['@qq.com','12345','123456','code','email_error','请输入有效的电子邮件地址'], ['*****@*****.**', '12345', '123456', 'code', 'email_error', '请输入有效的电子邮件地址'] ) ''' @ddt.data(*data) def test_login_register(self, data): email, username, password, code, assertCode, assertText = data test = self.RB.register_function(email, username, password, code, assertCode, assertText) return self.assertFalse(test, 'case失败')
class FirstDdtCase(unittest.TestCase): def setUp(self) -> None: self.driver = webdriver.Chrome() self.driver.get("http://my.cnki.net/Register/") self.register = RegisterBusiness(self.driver) def tearDown(self) -> None: time.sleep(2) self.driver.close() @ddt.data(*data) @ddt.unpack def test_register_case(self, data): email, username, password, code, assertCode, assertText = data email_error = self.register.register_function(email, username, password, code, assertCode, assertText) self.assertFalse(email_error, "测试失败")
class FirstDdtCase(unittest.TestCase): @classmethod def setUpClass(cls): print('所有case执行之前的前置') @classmethod def tearDownClass(cls): print('所有case执行之后的后置') def setUp(self): self.driver = webdriver.Chrome() self.driver.get("http://www.5itest.cn/register") self.driver.maximize_window() self.login = RegisterBusiness(self.driver) def tearDown(self): time.sleep(3) for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName file_path_father = os.path.abspath(os.path.dirname( os.getcwd())) file_path = os.path.join(file_path_father + "\\report\\" + case_name + ".png") self.driver.save_screenshot(file_path) self.driver.close() # 邮箱、用户名、密码、验证码、错误信息元素、错误信息 ''' @ddt.data( ['123','karen','123456','code','user_email_error','请输入有效的电子邮箱地址'], ['*****@*****.**', 'karen', '123456', 'code', 'user_email_error', '请输入有效的电子邮箱地址'] ) @ddt.unpack ''' @ddt.data(*data) def test_register_case(self, data): '''邮箱错误''' email, username, password, code, assertcode, asserttext = data email_e = self.login.register_function(email, username, password, code, assertcode, asserttext) self.assertFalse(email_e, '此条case成功')
class FirstDdtCase(unittest.TestCase): @classmethod #装饰器 def setUpClass(cls): print("所有case 执行之前的前置") @classmethod # 装饰器 def tearDownClass(cls): print("所有case执行之后的后置") def setUp(self): self.driver = webdriver.Chrome() self.driver.get("http://www.5itest.cn/register") self.login = RegisterBusiness(self.driver) def tearDown(self): #if sys.exc_info()[0]: for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.join(os.getcwd() + "/report/" + case_name + ".png") self.driver.save_screenshot(file_path) self.driver.close() print("这是case 的后置条件") # @ddt.data( # ["123","mushishi01","111111","code","email_error","请输入有效的电子邮件地址"], # ["@qq.com", "mushishi01", "111111", "code", "email_error", "请输入有效的电子邮件地址"], # ["*****@*****.**", "mushishinxnxn", "111111", "code", "email_error", "请输入有效的电子邮件地址"] # #["*****@*****.**", "mushishi01", "111111", "code", "email_error", "请输入有效的电子邮件地址"], # #["*****@*****.**", "mushishi01", "111111", "code", "email_error", "请输入有效的电子邮件地址"] # ) # @ddt.unpack @ddt.data(*data) def test_register_case(self, data): email, username, password, code, assertCode, assertText = data email_error = self.login.register_function(email, username, password, code, assertCode, assertText) print(email_error) self.assertFalse(email_error, "测试失败")
class FirstCaseDdt(unittest.TestCase): @classmethod def setUpClass(cls): cls.log = UserLog() cls.logger = cls.log.get_log() print("执行case_01") @classmethod def tearDownClass(cls): cls.log.close_handle() print("所有case后置") def setUp(self): self.driver = webdriver.Chrome() self.driver.maximize_window() self.driver.get("https://www.showapi.com/auth/reg") self.logger.info('open url') self.login = RegisterBusiness(self.driver) def tearDown(self): for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.join(os.getcwd() + "/report/" + case_name + ".png") self.driver.save_screenshot(file_path) self.driver.close() #用户名,邮箱,密码,验证码,定位信息,提示信息 # @ddt.data( # ['name001', 'email','password','file_name','user_email_error','请输入正确的邮箱账号'], # ) # # @ddt.unpack @ddt.data(*data) def test_01_ddt(self, data): name, email, password, code, assertCode, assertText = data email_error = self.login.register_function(name, email, password, code, assertCode, assertText) self.assertFalse(email_error)
class FirstDdtCase(unittest.TestCase): ''' 数据驱动 ''' def setUp(self): warnings.simplefilter('ignore', ResourceWarning) self.driver = webdriver.Chrome() self.driver.get('http://www.5itest.cn/register') self.driver.maximize_window() self.register = RegisterBusiness(self.driver) self.file_name = 'D:/Imooc_project/yztp/yzm.png' def tearDown(self): time.sleep(2) for method_name, error in self._outcome.errors: # self._outcome.errors用于获取案例中的失败 if error: case_name = self._testMethodName # _testMrthodName用于获取用例名 file_path = os.path.join( os.path.dirname(os.path.dirname( os.path.realpath(__file__))) + r'\tp' + '\\' + case_name + '.png') # 报告放的位置 self.driver.save_screenshot(file_path) self.driver.quit() ''' @ddt.data( ['12', 'zjq123', '123123', 'code', 'user_email_error', '请输入有效的电子邮件地址'], ['@qq.com', 'zjq123', '123123', 'code', 'user_email_error', '请输入有效的电子邮件地址'], ['*****@*****.**', 'zjq123', '123123', 'code', 'user_email_error', '请输入有效的电子邮件地址'], ) @ddt.unpack ''' @ddt.data(*data) @ddt.unpack # 如果data中含有多个数据,以元组,列表,字典等数据,需要自行在脚本中对数据进行分解或者使用unpack分解数据。 def test_register_case(self, email, username, password, code, assertCode, assertText): # email, username, password, code, assertCode, assertText = data email_error = self.register.register_function(email, username, password, code, assertCode, assertText) self.assertFalse(email_error)
class FirstDdtCase(unittest.TestCase): @classmethod def setUpClass(cls): cls.log = UserLog() cls.logger = cls.log.get_log() # cls.file_name = r"E:\Users\dongf\PycharmProjects\BaiDeom\case\report\test002.png" def setUp(self): self.driver = webdriver.Chrome() self.driver.get("http://www.5itest.cn/register?goto=/") self.logger.info("thes is log") self.login = RegisterBusiness(self.driver) def tearDown(self): sleep(2) for method_name,error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.join(os.getcwd()+"/report/"+case_name+".png") self.driver.save_screenshot(file_path) self.driver.close() @classmethod def tearDownClass(cls): cls.log.close_handle() #print("这个是case的后置条件") """ @ddt.data( ["12","dongfa123","1234567","111111","user_email_error","请输入有效的电子邮件地址"], ["*****@*****.**","dongfa123","1234567","111111", "user_name_error", "字符长度必须大于等于4,一个中文字算2个字符"], ["*****@*****.**","dongfa123","1234567","111111", "password_error", "最少需要输入 5 个字符"] ) @ddt.unpack """ @ddt.data(*data) #@ddt.unpack def test_register_case(self,data): email, username, password, code, assertCode, assertText = data email_error = self.login.register_function(email,username,password,code,assertCode,assertText) self.assertFalse(email_error,"case失败")
class FirstDdtCase(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.driver.get("http://www.5itest.cn/register") time.sleep(2) self.login = RegisterBusiness(self.driver) def tearDown(self): time.sleep(3) for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.join( os.path.dirname(os.getcwd()) + "\\report\\" + case_name + ".png") self.driver.save_screenshot(file_path) # if sys.exc_info()[0]: # self.driver.close() print("后置条件") # @ddt.data( # ["1232@", "1234", "123456", "F:\\workspace\\python\\py\\report\\test001.png", "user_email_error", "请输入有效的电子邮件地址"], # # ["@163.com", "1234", "123456", "F:\\workspace\\python\\py\\report\\test001.png", "user_email_error", "请输入有效的电子邮件地址"], # # ["*****@*****.**", "1234", "123456", "F:\\workspace\\python\\py\\report\\test001.png", "user_email_error", "请输入有效的电子邮件地址"] # ) # @ddt.unpack @ddt.data(*data) def test_register_case(self, data): email, username, password, code, assertCode, assertText = data print('username==', username) print('password=', password) email_error = self.login.register_function(email, username, password, code, assertCode, assertText) print(code) self.assertFalse(email_error, "email case")
class FirstDateCase(unittest.TestCase): @classmethod def setUpClass(cls): get_element = ReadIni() # cls.file_name = "C:/Users/Administrator/PycharmProjects/moco/moco_selenium/image/test001.png" # cls.file_name = get_element.get_value("code_image_url") def setUp(self): #self.driver = webdriver.Chrome("C:\Program Files (x86)\python\chromedriver.exe") self.driver = webdriver.Chrome("C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\Application" "\\chromedriver.exe") self.driver.get("http://www.5itest.cn/register?goto=/") self.login = RegisterBusiness(self.driver) def tearDown(self): time.sleep(2) for methon_name, error in self._outcome.errors: if error: case_name = self._testMethodName #filePath = os.path.join(os.path.dirname(os.getcwd()) + "\\moco\\report\\" + case_name + ".png") filePath1 = 'C:\\Users\\Administrator\\PycharmProjects\\moco\\report' filePath = filePath1 + '\\' + case_name + '.png' self.driver.save_screenshot(filePath) self.driver.close() # @ddt.data( # ['12', 'advbd12', '1234456', 'code', 'user_email_error', '请输入有效的电子邮件地址'], # ['@q.com', 'advbd12', '1234456', 'code', 'user_email_error', '请输入有效的电子邮件地址'], # ['*****@*****.**', 'advbd12', '1234456', 'code', 'user_email_error', '请输入有效的电子邮件地址'] # ) # @ddt.unpack @ddt.data(*data) def test_register_case(self, data): email, username, password, code, assertCode, assertText = data email_error = self.login.register_function(email, username, password, code, assertCode, assertText) self.assertEquals(email_error, assertText, "case执行失败")
class FirstDdtCase(unittest.TestCase): #unittest前置条件:打开网站 某一条case的前置条件 def setUp(self): self.driver = webdriver.Chrome() #加self使driver变成全局的 self.driver.get('http://www.5itest.cn/register') self.login = RegisterBusiness(self.driver) #unittest后置条件:关闭driver 某一条case的后置条件 def tearDown(self): time.sleep(2) #判断当前程序的运行是否有异常 python 3 #拿到当前运行的错误信息,返回的是list for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.join(os.getcwd() + "/report/" + case_name + ".png") self.driver.save_screenshot(file_path) self.driver.close() ''' @ddt.data( ['12','Mushishi01','111111','code','user_email_error','请输入有效的电子邮件地址'], ['@qq.com','Mushishi01','111111','code','user_email_error','请输入有效的电子邮件地址'], ['*****@*****.**','Mushishi01','111111','code','user_email_error','请输入有效的电子邮件地址'] ) @ddt.unpack ''' @ddt.data(*data) def test_register_case(self, data): #list赋值 email, username, password, self.file_name, assertCode, assertText = data email_error = self.login.register_function(email, username, password, self.file_name, assertCode, assertText) self.assertFalse(email_error, "测试失败")
class FirstDdtCase(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get("http://www.5itest.cn/register") self.driver.maximize_window() self.register_b = RegisterBusiness(self.driver) self.file_name = "C:/Users/TSDLJ/PycharmProjects/UITest_muke/screenshot.png" def tearDown(self): print('这是case的后置条件') # sys.exc_info() # 报错时截图 for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName image_path = sys.path[0] + "/image/" + case_name + ".png" self.driver.save_screenshot(image_path) self.driver.close() # 邮箱 用户名 密码 验证码 定位元素 错误提示 ''' @ddt.data( ["123", "userwed", "111111", "code", "user_email_error", "请输入有效的电子邮件地址"], ["@wh.com", "userwed", "111111", "code", "user_email_error", "请输入有效的电子邮件地址"], ["*****@*****.**", "userwed", "111111", "code", "user_email_error", "请输入有效的电子邮件地址"] ) @ddt.unpack ''' # excel文件数据 @ddt.data(*data) def test_register_case(self, data): email, username, password, code, assertcode, assertext = data register_error = self.register_b.register_function( email, username, password, code, assertcode, assertext) # email_error返回True或者False,返回True时,说明email错误提示没有显示,断言结果为F;email错误提示显示显示时,断言结果为OK self.assertFalse(register_error, '测试失败')
class FirstDdtCase(unittest.TestCase): # 所有case执行之前的装饰器---前置条件 ''' @classmethod def setUpClass(cls): cls.register_url = 'http://www.5itest.cn/register' cls.driver = webdriver.Chrome() cls.driver.get(cls.register_url) cls.driver.maximize_window() cls.rb = RegisterBusiness(cls.driver) cls.file_name = os.path.join(os.path.pardir + "/Image/" + "test_captcha.png") print('所有case执行的前置条件') # 所有case执行之后的后置条件 @classmethod def tearDownClass(cls): cls.driver.close() print('所有case执行的后置条件') ''' # 每一条case执行之前的前置条件 def setUp(self): self.register_url = 'http://www.5itest.cn/register' self.driver = webdriver.Chrome() self.driver.get(self.register_url) self.driver.maximize_window() self.rb = RegisterBusiness(self.driver) #self.file_name = os.path.join(os.path.pardir + "/Image/" + "test_captcha.png") # print('每一条case执行前的前置条件') # 每一条case执行之后的后置条件 def tearDown(self): # print('每一条case执行之后的后置条件') time.sleep(2) # case执行失败进行截图 for method_name, error in self._outcome.errors: if error: # 获取当前执行的case名字 case_name = self._testMethodName # 设置失败截图存储路径 file_path = os.path.join(os.path.pardir + "/report/" + case_name + ".png") self.driver.save_screenshot(file_path) self.driver.close() ''' @ddt.data( ['test01', 'test01', 'test01abc', self.file_name, 'register_email_error', '请输入有效的电子邮件地址'], ['*****@*****.**', '', 'test02abc', self.file_name, 'register_nickname_error', '字符长度必须大于等于4,一个中文字算2个字符'] ) @ddt.unpack ''' @ddt.data(*data) # 邮箱错误用例,判断用例是否执行成功 def test_register_case(self, data): email, username, password, file_name, assertCode, assertText = data register_email_error = self.rb.register_function( email, username, password, file_name, assertCode, assertText) self.assertTrue(register_email_error, "账号注册成功,该用例执行失败")
class FirstDdtCase(unittest.TestCase): ex = ExcelUtil() data = ex.get_data() # 某一条case的前置条件, 装饰漆 code_file = "/Users/qing.li/PycharmProjects/hm/selenium_/imooc/image/code.png" @classmethod def setUpClass(cls): # cls.code_file = "/Users/qing.li/PycharmProjects/hm/selenium_/imooc/image/code.png" print("所有case执行之前的前置") @classmethod def tearDownClass(cls): print("所有case执行之后的后置") def setUp(self): print("每条case执行之前") self.file_path = "/Users/qing.li/PycharmProjects/hm/selenium_/imooc/image/imooc_code_%s.png" % ( time.time()) self.driver = webdriver.Chrome() self.driver.get("http://www.5itest.cn/register") self.driver.maximize_window() self.register = RegisterBusiness(self.driver) # self.register_function = RegisterFunction(self.driver, self.file_path) self.register_code = GetCode(self.driver, self.file_path) def tearDown(self): print("每条case执行之后") # py2看case有没有异常 # if sys.exc_info()[0]: # self.driver.save_screenshot() # py3中使用_outcome.errors, self._outcome.errors结果是一个list print(self._outcome.errors) for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName error_path = "/Users/qing.li/PycharmProjects/hm/selenium_/imooc/image/imooc_%s_%s.png" % ( case_name, time.time()) self.driver.save_screenshot(error_path) self.driver.close() # @ddt.data( # ['email', 'user11188', '111111', code_file, "register_email_error", "请输入有效的电子邮件地址"], # ['email@', 'user11188', '111111', code_file, "register_email_error", "请输入有效的电子邮件地址"], # ['*****@*****.**', 'user1188', '911111', code_file, "register_email_error", "请输入有效的电子邮件地址"] # # ) # @ddt.unpack # case名称尽量见名知意 # def test_register_error(self, email, username, password, code_file, assert_code, assert_text): # # 此方法应该封装在handle中 # # if not self.register.login_email_error('email', 'user11188', '111111', 'test1'): # # error_path = "/Users/qing.li/PycharmProjects/hm/selenium_/imooc/image/imooc_email_error_%s.png" % (time.time()) # # self.driver.save_screenshot(error_path) # # AssertionError 通过assert判断是否为error # email_error = self.register.register_function(email, username, password, code_file, assert_code, assert_text) # self.assertTrue(email_error, "邮箱用例") @ddt.data(*data) def test_register_error(self, data): email, username, password, code, assert_code, assert_text = data # 此方法应该封装在handle中 # if not self.register.login_email_error('email', 'user11188', '111111', 'test1'): # error_path = "/Users/qing.li/PycharmProjects/hm/selenium_/imooc/image/imooc_email_error_%s.png" % (time.time()) # self.driver.save_screenshot(error_path) # AssertionError 通过assert判断是否为error email_error = self.register.register_function(email, username, password, self.code_file, assert_code, assert_text) self.assertTrue(email_error, "邮箱用例")