def browse_photo_add_photo_path_sift_demo(self, photo_path, photo_name, screen_capture): # 点击浏览按钮 self.click_photo_add_browse_btn() time.sleep(2) # 实例化图像匹配类 IM = ImageMatchBySift() # 实例化控件操作类 AE = ActionExe() # 读入数据 ex = ExcelUtil(excel_path=r"D:\pythonWork\autoTest\data\picturedemo.xls") # 获取excel行数 rows = ex.get_lines() # 循环获取excel模板图数据 for row in range(0, rows): # 获取模板图 function_photo = ex.get_col_value(row, 2) # 获取模板图处执行方法 operate_method = ex.get_col_value(row, 3) # 截取当前页面 im = ImageGrab.grab() # 保存截取页面到固定路径 im.save(screen_capture) # 引入模板匹配模块 operate_location = IM.image_match_by_sift(function_photo, screen_capture) operate_location_x = int(operate_location[0]) operate_location_y = int(operate_location[1]) if operate_location != None: # 鼠标定位到识别元素位置 win32api.SetCursorPos([operate_location_x, operate_location_y]) # 鼠标左击 win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) # 鼠标右击 # win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0) time.sleep(3) """if row == 0:
def __init__(self, file_name, sheet_name=None, sheet_index=0): self.requestUtil = RequestUtil() self.excelUtil = ExcelUtil(file_name, sheet_name, sheet_index) self.dataUtil = DataUtil() self.assetUtil = AssertUtil() self.logger = Logger(self.__class__.__name__).get_logger_with_level() self.cookie_dict = {}
class GetData: def __init__(self): self.excel = ExcelUtil("/Users/qing.li/Desktop/thrid_case.xlsx") def get_excel_data(self): # 去掉表头 result = self.excel.get_data()[1:] return result
def browse_photo_add_photo_path(self, photo_path, photo_name, screen_capture): # 点击浏览按钮 self.click_photo_add_browse_btn() time.sleep(2) # 实例化图像匹配类 IM = ImageMatch() # 实例化控件操作类 AE = ActionExecute() # 截取当前页面 im = ImageGrab.grab() # 保存截取页面到固定路径 im.save(screen_capture) # 读入数据 ex = ExcelUtil(excel_path=r"D:\pythonWork\autoTest\data\examinationPhotoImageMatchData.xls") # 获取excel行数 rows = ex.get_lines() # 循环获取excel模板图数据 for row in range(0, rows): # 获取模板图 function_photo = ex.get_col_value(row, 2) # 获取模板图处执行方法 operate_method = ex.get_col_value(row, 3) # 引入模板匹配模块 operate_location = IM.ImageMatch(function_photo, screen_capture) operate_location_x = int(operate_location[0]) operate_location_y = int(operate_location[1]) if operate_location != None: # 鼠标定位到识别元素位置 win32api.SetCursorPos([operate_location_x, operate_location_y]) # 鼠标左击 win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) time.sleep(2) # 鼠标右击 # win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0) # 将内容复制到剪切板里 AE.add_to_clipboard(photo_name) # 获取剪切板的内容 # AE.get_clipboard() # 执行ctrl+v if row == 0: AE.paste_method() time.sleep(3)
def run_main(self): file_path = os.path.join(os.getcwd() + '/config/keyword.xlsx') handle_excl = ExcelUtil(excl_path=file_path) case_lines = handle_excl.get_lines() if case_lines: for i in range(1, case_lines): is_run = handle_excl.get_col_value(i, 3) if is_run: method = handle_excl.get_col_value(i, 4) send_value = handle_excl.get_col_value(i, 5) handle_value = handle_excl.get_col_value(i, 6) self.run_method(method, send_value, handle_value)
class DdtForgetFindbyTelCase(unittest.TestCase): @classmethod def setUpClass(cls): cls.driver = webdriver.Chrome() cls.forget_tel_bussiness = ForgetFindByTelBussiness(cls.driver) def setUp(self): self.driver.get("https://passport.isoftstone.com/forgot") ''' @ddt.data( ['','2','3','user_name_null','员工域名 字段是必需的。'], ['1','','3','user_tel_null','绑定手机 字段是必需的。'], ['1','2','3','code_error','验证码输入有误'] ) @ddt.unpack def test01_forget_username_null(self,user_name,user_tel,code_text,assertCode,assertText): self.assertTrue(self.forget_tel_bussiness.forget_function(user_name,user_tel,code_text,assertCode,assertText)) ''' data = ExcelUtil().table_list() @ddt.data(*data) def test01_forget_username_null(self, data): user_name, user_tel, code_text, assertCode, assertText = data self.assertTrue( self.forget_tel_bussiness.forget_function(user_name, user_tel, code_text, assertCode, assertText)) def tearDown(self): pass @classmethod def tearDownClass(cls): cls.driver.close()
sys.path.append('D:/pythonWork/autoTest') from time import sleep, time from case.login_keyword_cases import LoginKeywordCases import ddt import unittest import os #import HTMLTestRunner #from util.htmltestrunner.HTMLTestRunner import HTMLTestRunner from util.HTMLTestRunner_PY3.HTMLTestRunner_PY3 import HTMLTestRunner from selenium import webdriver from business.examination_place_business import ExaminationPlaceBusiness from util.excel_util import ExcelUtil from util.table_util import TableUtil # 获取数据 ex = ExcelUtil( excel_path=r"D:\pythonWork\autoTest\data\examinationPlaceAddDdtData.xls") data = ex.get_data() # 测试类前加修饰@ddt.ddt @ddt.ddt # 考点编号,考点名称,考点地址,考点负责人,负责人联系电话 class ExaminationPlaceDeleteDdtCase(unittest.TestCase): # 所有case执行之前的装饰器---前置条件 @classmethod def setUpClass(cls): print('所有case执行的前置条件') lkc = LoginKeywordCases() lkc.run_keyword_excel_cases() cls.driver = getattr(getattr(lkc, 'lk'), 'driver') cls.driver.maximize_window()
def run_main(self): self.action_method = ActionMethod() handle_excel = ExcelUtil('D:/Imooc_project/config/keyword.xls') # get 行数 case_lines = handle_excel.get_lines() if case_lines: # for循环,遍历每一行 for i in range(1, case_lines): col_value = handle_excel.get_col_value(i, 3) # if 是否执行 if col_value == 'yes': method = handle_excel.get_col_value(i, 4) # 操作方法 send_value = handle_excel.get_col_value(i, 5) # 输入值 handle_value = handle_excel.get_col_value(i, 6) # 操作元素 except_result_method = handle_excel.get_col_value( i, 7) # 获取预期结果的方法 except_result = handle_excel.get_col_value(i, 8) # 获取预期结果的值 self.run_method(method, send_value, handle_value) if except_result != '': except_value = self.get_except_result_value( except_result) # 获取预期结果的值(列表) if except_value[0] == 'text': result = self.run_method(except_result_method) if except_value[1] in result: handle_excel.write_value(i, 'pass') else: handle_excel.write_value(i, 'fail') elif except_value[0] == 'element': result = self.run_method(except_result_method, except_value[1]) if result: handle_excel.write_value(i, 'pass') else: handle_excel.write_value(i, 'fail')
def run_main(self): self.action_method = ActionMethod() handle_excel = ExcelUtil( 'C:\\Users\\xiazh\\PycharmProjects\\Imooc_selenium\\config\\keyword.xls' ) case_lines = handle_excel.get_lines() if case_lines: for i in range(1, case_lines): is_run = handle_excel.get_col_value(i, 3) if is_run == 'yes': method = handle_excel.get_col_value(i, 4) send_value = handle_excel.get_col_value(i, 5) handle_value = handle_excel.get_col_value(i, 6) expect_result_method = handle_excel.get_col_value(i, 7) expect_result = handle_excel.get_col_value(i, 8) # ''而不是None # if send_value: self.run_method(method, send_value, handle_value) if expect_result != '': expect_value = self.get_expect_result_value( expect_result) if expect_value[0] == 'text': result = self.run_method(expect_result_method) if expect_value[1] in result: handle_excel.write_value(i, 'pass') else: handle_excel.write_value(i, 'fail') elif expect_value[0] == 'element': result = self.run_method(expect_result_method, expect_value[1]) if result: handle_excel.write_value(i, 'pass') else: handle_excel.write_value(i, 'fail') else: print('没有else') else: print('预期结果为空')
from business.loginbusiness import LoginBusiness from business.add_munberbusiness import AddMenBusiness from selenium import webdriver import time import ddt import unittest import os import HTMLTestRunner from util.excel_util import ExcelUtil amex = ExcelUtil('D:\Kuban\config\mendata.xls') login_data = amex.get_data() @ddt.ddt class AddMen(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() # self.driver.maximize_window() self.driver.get('https://mgmt.ent-dev.kuban.io/') self.amb = AddMenBusiness(self.driver) self.lb = LoginBusiness(self.driver) def tearDown(self): for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.abspath( os.path.dirname(os.getcwd()) + '\image' + '\pic_' + case_name + '.png') self.driver.save_screenshot(file_path)
#import HTMLTestRunner #from util.HTMLTestRunner_PY3.HTMLTestRunner_PY3 import HTMLTestRunner import sys sys.path.append('D:/pythonWork/autoTest') from util.htmltestrunner.HTMLTestRunner import HTMLTestRunner import unittest from util.excel_util import ExcelUtil from case.examination_envir_ddt_case import ExaminationEnvirDdtCase from case.examination_machine_ddt_case import ExaminationMachineDdtCase from case.examination_photo_ddt_case import ExaminationPhotoDdtCase # 获取数据 ex = ExcelUtil(excel_path=r"D:\pythonWork\autoTest\data\automakesuite.xls") class AutoMakeSuite(): def make_suite(self): # 获取列表测试用例个数 l1 = ex.get_data() rows = ex.get_lines() result = [] for i in range(0, rows): a = eval(ex.get_col_value(i, 2)) examination = unittest.makeSuite(a) result.append(examination) return result if __name__ == "__main__": #runner = unittest.TextTestRunner() AMS = AutoMakeSuite()
def run_main(self): self.action_method = ActionMethod('firefox') handle_excel = ExcelUtil('F:/Python/5itest_po_3/config/keywords-1.xls') case_lines = handle_excel.get_lines() for i in range(1, case_lines): is_run = handle_excel.get_value(i, 3) if is_run == 'yes': method = handle_excel.get_value(i, 4) send_value = handle_excel.get_value(i, 5) get_element = handle_excel.get_value(i, 6) except_result_method = handle_excel.get_value(i, 7) except_result = handle_excel.get_value(i, 8) self.run_method(method, get_element, send_value) if except_result: except_value = self.get_except_result_value(except_result) if except_value[0] == 'text': result = self.run_method(except_result_method) if except_value[1] in result: handle_excel.write_value(i, 'pass') else: handle_excel.write_value(i, 'fail') elif except_value[0] == 'element': result = self.run_method(except_result_method, except_value[1]) if result: handle_excel.write_value(i, 'pass') else: handle_excel.write_value(i, 'fail') else: pass
def run_main(self): self.action_method = ActionMethod() handle_excel = ExcelUtil() case_lines = handle_excel.get_lines() if case_lines: for i in range(1, case_lines): is_run = handle_excel.get_col_value(i, 3) if is_run == 'yes': method = handle_excel.get_col_value(i, 4) send_value = handle_excel.get_col_value(i, 5) handle_value = handle_excel.get_col_value(i, 6) except_result_method = handle_excel.get_col_value(i, 7) except_result = handle_excel.get_col_value(i, 8) self.run_method(method, send_value, handle_value) if except_result != '': except_value = self.get_expect_result_value( except_result) if except_value[0] == 'text': result = self.run_method(except_result_method) if except_value[1] in result: handle_excel.write_val(i, 'pass') else: handle_excel.write_val(i, 'fail') elif except_value[0] == 'element': self.run_method(except_result_method, except_value[1]) if result: handle_excel.write_val(i, 'pass') else: handle_excel.write_val(i, 'fail') else: print('预期结果为空')
''' This is a simple case for Data-Driven Test ''' import ddt import unittest import xlrd import sys sys.path.append("C:\\work\\vcPyTest\\WebTest") from util.excel_util import ExcelUtil ex = ExcelUtil() testData = ex.get_data() @ddt.ddt class DataTest(unittest.TestCase): @classmethod def setUpClass(cls): print("===============Start to Run ! =============") @classmethod def tearDownClass(cls): print("=============== End the run ! ==============") def setUp(self): print("This is the setUp case") def tearDown(self): print("This is the teardown case") @ddt.data(*testData)
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, "邮箱用例")
from business.Staff_book_meeting_business import StaffBookMeetingBusiness from business.loginbusiness import LoginBusiness from selenium import webdriver from util.excel_util import ExcelUtil import time import ddt import unittest import os import HTMLTestRunner ex = ExcelUtil('D:\Kuban\config\staffbookroom.xls') data = ex.get_data() @ddt.ddt class StaffBookMeeting(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get('https://mgmt.ent-dev.kuban.io/') self.smb = StaffBookMeetingBusiness(self.driver) self.lb = LoginBusiness(self.driver) def tearDown(self): for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.abspath( os.path.dirname(os.getcwd()) + '\image' + '\pic_' + case_name + '.png') self.driver.save_screenshot(file_path) self.driver.close()
def export_success(self): #self.handle.export() #获取导出文件信息 ex = ExcelUtil("C:\\Users\\sunH\\Downloads\\待提交_20191206.xls") value = ex.get_data() return value
# _*_coding:utf-8_*_ # 多行注释快捷键 Ctrl+/ # 选中代码块 tab/shift+tab 缩进/缩出代码块4个空格 """ __title__ = '' __author__ = 'chunhua.huang' __mtime__ = '2018/12/18' """ import ddt import unittest from util.excel_util import ExcelUtil ex = ExcelUtil(r'D:\F\pyworkspace\SeleniumPython\config\DDTtestdata.xls') data = ex.get_data() print(data) @ddt.ddt class DataTest(unittest.TestCase): def setUp(self): print('这是setup') def tearDown(self): print('这是teardown') #@ddt.data([1,2],[1,3]) @ddt.data(*data) def test_add(self, data): a, b = data
from business.loginbusiness import LoginBusiness from business.location_admin_add_staff_business import LocationAdminAddStaffBusiness from selenium import webdriver from util.excel_util import ExcelUtil import ddt import time import unittest import os import HTMLTestRunner ex = ExcelUtil('D:\Kuban\config\staffdata.xls') staff_data = ex.get_data() @ddt.ddt class LocationAdminAddStaff(unittest.TestCase): def setUp(self) -> None: self.driver = webdriver.Chrome() self.driver.get('https://mgmt.ent-dev.kuban.io/') self.lab = LocationAdminAddStaffBusiness(self.driver) self.lb = LoginBusiness(self.driver) def tearDown(self) -> None: for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.abspath( os.path.dirname(os.getcwd()) + '\image' + '\pic_' + case_name + '.png') self.driver.save_screenshot(file_path) self.driver.close()
def run_keyword_excel_cases(self): self.lk = LoginKeyword() self.excel_path = r'D:\pythonWork\autoTest\data\loginKeyWord.xls' handle_excel = ExcelUtil(self.excel_path) # 获取 excel 关键词测试用例的条数 cases_numbers = handle_excel.get_lines() actual_case_numbers = int(cases_numbers) - 1 print("注册页获取到的关键词测试的测试用例条数为:%d" % actual_case_numbers) # 循环行数遍历测试用例 if cases_numbers: # 第 0 行是标题行不作为用例执行 for i in range(1, cases_numbers): # 获取测试用例的名称 testcase_name = handle_excel.get_col_value(i, 0) # 获取用例是否执行 is_run = handle_excel.get_col_value(i, 3) if is_run == 'yes': # 执行方法 keyword_method = handle_excel.get_col_value(i, 4) # 输入数据 send_value = handle_excel.get_col_value(i, 5) # 操作元素 operator_element = handle_excel.get_col_value(i, 6) # 获得预期结果的方法 except_result_method = handle_excel.get_col_value(i, 7) # 预期结果的值 except_result = handle_excel.get_col_value(i, 8) # 实际结果 actual_result = handle_excel.get_col_value(i, 9) # 反射:通过excel中的字符串执行python文件中的方法 self.run_keyword_method(keyword_method, operator_element, send_value) if except_result != '': except_value = self.get_except_result_value(except_result) if except_value[0] == 'text': result = self.run_keyword_method(except_result_method) if except_value[1] in result: handle_excel.write_value(i, 'pass') print('第 %s 条用例执行预期结果,用例名称是: [%s]' % (i, testcase_name)) else: handle_excel.write_value(i, 'fail') print('第 %s 条用例执行预期结果,用例名称是: [%s]' % (i, testcase_name)) elif except_value[0] == 'element': result = self.run_keyword_method(except_result_method, except_value[1]) if result: handle_excel.write_value(i, 'pass') print('第 %s 条用例执行预期结果,用例名称是: [%s]' % (i, testcase_name)) else: handle_excel.write_value(i, 'fail') print('第 %s 条用例执行预期结果,用例名称是: [%s]' % (i, testcase_name)) else: print('没有else') else: print('第 %s 条用例不执行,用例名称是: [%s],无预期结果' % (i, testcase_name)) else: print("略略略~,请检查你是否有写测试用例!")
import os import sys sys.path.append('C:\\Users\\Administrator\\PycharmProjects\\moco') import time import HTMLTestRunner from selenium import webdriver from business.register_business import RegisterBusiness from util.excel_util import ExcelUtil from util.read_ini import ReadIni import ddt import unittest exl = ExcelUtil() data = exl.get_data() @ddt.ddt 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")
def run_main(self): self.action_method = ActionMethod() handle_excel = ExcelUtil("D:\project_selenium3\config\keyword.xls") case_lines = handle_excel.get_lines() #获取case表格中的行数 if case_lines: for i in range(1, case_lines): #跳过case表格中的第一行内容 is_run = handle_excel.get_col_value(i, 3) #获取是否执行列的值 if is_run == 'yes': #根据执行列是否为yes,如果是yes,则执行相应的case except_result_method = handle_excel.get_col_value( i, 7) #预期结果方法值 except_result = handle_excel.get_col_value(i, 8) #预期结果 method = handle_excel.get_col_value(i, 4) #获取执行方法 send_value = handle_excel.get_col_value(i, 5) #获取需要输入的数据 handle_value = handle_excel.get_col_value(i, 6) #获取操作元素 self.run_method(method, send_value, handle_value) if except_result != '': except_value = self.get_except_result_value( except_result) #获取预期结果值 if except_value[0] == 'text': result = self.run_method(except_result_method) if except_value[1] in result: handle_excel.write_value(i, 9, 'pass') else: handle_excel.write_value(i, 9, 'fail') elif except_value[0] == 'element': result = self.run_method(except_result_method, except_value[1]) if result: handle_excel.write_value(i, 9, 'pass') else: handle_excel.write_value(i, 9, 'fail') else: print("没有else") else: print("预期结果为空")
def run_main(self): self.action_method = ActionMethod() handle_excel = ExcelUtil( 'C:/Users/15927/Documents/SELENIUMPYTHONBASE/config/keyword.xls') case_lines = handle_excel.get_lines() if case_lines: for i in range(1, case_lines): is_run = handle_excel.get_col_value(i, 3) #print(is_run) if is_run == 'yes': except_result_method = handle_excel.get_col_value(i, 7) except_result = handle_excel.get_col_value(i, 8) method = handle_excel.get_col_value(i, 4) send_value = handle_excel.get_col_value(i, 5) handle_value = handle_excel.get_col_value(i, 6) #''而不是None #if send_value: self.run_method(method, send_value, handle_value) if except_result != '': except_value = self.get_except_result_value( except_result) if except_value[0] == 'text': result = self.run_method(except_result_method) #print(result) if except_value[1] in result: handle_excel.write_value(i, 'pass') else: handle_excel.write_value(i, 'fail') elif except_value[0] == 'element': result = self.run_method(except_result_method, except_value[1]) if result: handle_excel.write_value(i, 'pass') else: handle_excel.write_value(i, 'fail') else: print("没有else") else: print("预期结果为空")
from business.loginbusiness import LoginBusiness from business.frontwaiter_invite_visitor_business import FrontWaiterInviteVisitorBusiness from selenium import webdriver from util.excel_util import ExcelUtil import ddt import time import unittest import os import HTMLTestRunner ex = ExcelUtil('D:\Kuban\config\waitervisitordata.xls') data = ex.get_data() @ddt.ddt class FrontWaiterInviteVisitor(unittest.TestCase): def setUp(self) -> None: self.driver = webdriver.Chrome() self.driver.get('https://mgmt.ent-dev.kuban.io/') self.fivb = FrontWaiterInviteVisitorBusiness(self.driver) self.lb = LoginBusiness(self.driver) def tearDown(self) -> None: for method_name, error in self._outcome.errors: if error: case_name = self._testMethodName file_path = os.path.abspath( os.path.dirname(os.getcwd()) + '\image' + '\pic_' + case_name + '.png') self.driver.save_screenshot(file_path) self.driver.close()
def run_main(self): self.action_method = ActionMethod() handle_excel = ExcelUtil(ex_path) # 行数を取得 case_lines = handle_excel.get_lines() if case_lines: # 行数をループ、毎行のcaseを実行 for i in range(1, case_lines): is_run = handle_excel.get_col_value(i, 3) # 実行するかどうか if is_run == 'yes': # 実行方法を取得 method = handle_excel.get_col_value(i, 4) # 入力データを取得 send_value = handle_excel.get_col_value(i, 5) # 操作elementを取得 handle_value = handle_excel.get_col_value(i, 6) # 予想結果を取得 except_result_method = handle_excel.get_col_value(i, 7) # 予想結果の値 except_result = handle_excel.get_col_value(i, 8) # except_result_method と except_resultは '' である可能性はある #if send_value: self.run_method(method, send_value, handle_value) # もし予想結果の値が存在すれば if except_result != '': except_value = self.get_except_result_value( except_result) # もし予想結果のタイプはtext if except_value[0] == 'text': result = self.run_method(except_result_method) if except_value[1] in result: handle_excel.write_value(i, 'pass') else: handle_excel.write_value(i, 'fail') # もし予想結果はelementであれば elif except_value[0] == 'element': result = self.run_method(except_result_method, except_value[1]) if result: handle_excel.write_value(i, 'pass') else: handle_excel.write_value(i, 'fail') else: print("no-else") else: print('予想結果ありません')
def run_main(self): self.action_method = ActionMethod() file_path = os.path.join(os.getcwd()+'/config/keyword.xlsx') handle_excl = ExcelUtil(excl_path = file_path) # 拿到行数 case_lines = handle_excl.get_lines() if case_lines: # 循环行数,执行每一行的case for i in range(1, case_lines): # 是否执行 is_run = handle_excl.get_col_value(i, 3) if is_run: # 拿到执行方法 method = handle_excl.get_col_value(i, 4) # 输入数据 send_value = handle_excl.get_col_value(i, 5) # 操作元素 handle_value = handle_excl.get_col_value(i, 6) # 预期结果 except_method = handle_excl.get_col_value(i, 7) # 预期结果值 except_result = handle_excl.get_col_value(i, 8) self.run_method(method, send_value, handle_value) if except_result != '': except_value = self.get_except_value(except_result) if except_value[0] == 'text': print('text的except_method------>', except_method) result = self.run_method(except_method) print('action_method中运行的方法名:--------->', getattr(self.action_method, except_method)) print('text result------->', result) if except_value[1] in result: handle_excl.write_value(i, 9, 'pass') else: handle_excl.write_value(i, 9, 'fail') elif except_value[0] == 'element': result = self.run_method(except_method, except_value[1]) print('element result------->', result) if result: handle_excl.write_value(i, 9, 'pass') else: handle_excl.write_value(i, 9, 'fail')
#coding=utf-8 # 邮箱 用户名 密码 验证码 错误信息定位元素 错误提示信息 实现数据驱动 import ddt import unittest from business.resister_business import ResisterBusiness from selenium import webdriver import time import HTMLTestrunner import os from util.excel_util import ExcelUtil #导入包 直接调用 ex = ExcelUtil() data = ex.get_data() @ddt.ddt 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 = ResisterBusiness(self.driver) def tearDown(self): # 后置条件 time.sleep(2) #if sys.exc_info()[0]: # self._outcome.errors 这样的情况下拿到的是一个list 这时候一定要使用一个for循环 #这里的method是一个类 用不用 只要判断error有没有 如果有我就使用截图 # for method_name,error in self._outcome.errors: # if error: # case_name=self._testMethodName #拿到case的名字 如果没有拿到就是使用关闭的操作
def run_main(self): handle_excel = ExcelUtil( r'D:\F\pyworkspace\SeleniumPython\config\keyword.xls')
from handle.examination_envir_handle import ExaminationeEnvirHandle sys.path.append('D:/pythonWork/autoTest') from case.login_keyword_cases import LoginKeywordCases import ddt import unittest import os from business.examination_place_business import ExaminationPlaceBusiness from business.examination_room_business import ExaminationRoomBusiness from business.examination_envir_business import ExaminationEnvirBusiness from util.excel_util import ExcelUtil from util.table_util import TableUtil # 获取数据 ex = ExcelUtil( excel_path=r"D:\pythonWork\autoTest\data\examinationMachineDdtCase.xls") data = ex.get_data() # 测试类前加修饰@ddt.ddt @ddt.ddt class ExaminationMachineDdtCase(unittest.TestCase): # 所有case执行之前的装饰器---前置条件 @classmethod def setUpClass(cls): print('所有case执行的前置条件') lkc = LoginKeywordCases() lkc.run_keyword_excel_cases() cls.driver = getattr(getattr(lkc, 'lk'), 'driver') cls.driver.maximize_window() cls.EPb = ExaminationPlaceBusiness(cls.driver)
def run_main(self): self.action_method = ActionMethod() handle_excel = ExcelUtil('E:\\Teacher\\Imooc\\SeleniumPython\\config\\keyword.xls') case_lines = handle_excel.get_lines() if case_lines: for i in range(1,case_lines): is_run = handle_excel.get_col_value(i,3) # 是否执行 if is_run == 'yes': except_result_method = handle_excel.get_col_value(i,7) # 预期结果 except_result = handle_excel.get_col_value(i,8) # 实际结果 method = handle_excel.get_col_value(i,4) # 执行方法 send_value = handle_excel.get_col_value(i,5) # 输入的数据 handle_value = handle_excel.get_col_value(i,6) # 操作元素 self.run_method(method,send_value,handle_value) if except_result != '': except_value = self.get_except_result_value(except_result) if except_value[0] == 'text': result = self.run_method(except_result_method) if except_value[1] in result: handle_excel.write_value(i,'pass') else: handle_excel.write_value(i,'fail') elif except_value[0] == 'element': result = self.run_method(except_result_method,except_value[1]) if result: handle_excel.write_value(i,'pass') else: handle_excel.write_value(i,'fail') else: print("没有else") else: print('预期结果为空')