def main(self): username = "".join(get_user_name()) email = username + "@163.com" password = '******' answer_result = 'zhangsanfeng' self.send_keys("username", username) self.send_keys("password", password) self.send_keys("password2", password) self.send_keys("email", email) self.send_keys("aq_answer", answer_result) file_name = PathUtil.get_file_path("img/code.png") code_text = None count = 0 while code_text is None and count <= 10: count += 1 print("验证码流程开始") self.click("vcode_img") time.sleep(3) self.get_code_img( self._get_element("RegisterElement", "vcode_img"), file_name) code_text = get_code_text(file_name) print(f"第{count}次识别验证码,识别的结果为:{code_text}") print("验证码流程结束") if code_text is None: continue self.send_keys("vcode", code_text.strip()) self.click("login_btn") time.sleep(5) self.alert_accept() if self.is_home_page(): user_info = self._get_element( "HomeElement", "user_info").get_attribute("text") if user_info == username: print("登录成功") else: print("登录失败") file_path = PathUtil.get_file_path( "img/fail_screenshot.png") self.save_screenshot(file_path) break else: code_text = None
def main(self): testSuite = unittest.TestSuite() testSuite.addTest(RegisterCase('test_register_code_error')) testSuite.addTest(RegisterCase('test_login_success')) file_path = PathUtil.get_file_path("report/RegisterReport.html") f = open(file_path, 'wb') html_test = HTMLTestRunner(stream=f, title='RegisterReport', description='这是一个注册页面的报告') html_test.run(testSuite)
def __init__(self): self.logger = logging.getLogger() self.logger.setLevel(logging.DEBUG) log_name = datetime.datetime.now().strftime("%Y-%m-%d") + ".log" log_path = PathUtil.get_file_path(f"logs/{log_name}") # 文件输出 self.file_handle = logging.FileHandler(log_path, encoding='utf-8') formatter = logging.Formatter( '%(asctime)s %(filename)s %(funcName)s %(levelno)s %(levelname)s %(message)s' ) self.file_handle.setFormatter(formatter) self.file_handle.setLevel(logging.INFO) self.logger.addHandler(self.file_handle)
def run_main(self): file_path = PathUtil.get_file_path("conf/keyword.xls") excel = ExcelUtil(file_path) rows = excel.get_lines() action_method = ActionMethod() for i in range(1, rows): is_run = excel.get_cell_value(i, 1) if is_run == 'Y': node_element = excel.get_cell_value(i, 3) exec_method = excel.get_cell_value(i, 4) send_value = excel.get_cell_value(i, 5) action_element = excel.get_cell_value(i, 6) except_result_method = excel.get_cell_value(i, 7) except_result = excel.get_cell_value(i, 8) self.run_method(action_method, exec_method, node_element, action_element, send_value) if except_result_method != '' and except_result != '': result = self.exec_result_method(action_method, except_result_method) if except_result in result: excel.write_cell_value(i, 9, 'pass') else: excel.write_cell_value(i, 9, 'fail')
for i in range(self.get_lines()): data.append(self.book_sheet.row_values(i)) return data def get_lines(self): return self.book_sheet.nrows # 获取单元格的数据 def get_cell_value(self, row, col): if self.get_lines() > row: return self.book_sheet.cell_value(row, col) else: return None # 写入数据 def write_cell_value(self, row, col, value): data = xlrd.open_workbook(self.file_path) write_data = copy(data) sheet = write_data.get_sheet(self.index) sheet.write(row, col, value) write_data.save(self.file_path) if __name__ == '__main__': file_path = PathUtil.get_file_path("conf/keyword.xls") execl = ExcelUtil(file_path) data = execl.get_cell_value(1, 4) print(data) # execl.write_cell_value(1, 6, "hello world")
def __init__(self, file_name=None): if not file_name: file_name = PathUtil.get_file_path("conf/element.ini") self.cf = self._load_ini(file_name)
# coding=utf-8 from selenium import webdriver from business.register_ddt_business import RegisterDDTBusiness import unittest from util.html_test_runner import HTMLTestRunner from ddt import * from util.excel_util import ExcelUtil from util.path_util import PathUtil excel_util = ExcelUtil(PathUtil.get_file_path("conf/case.xls")) datas = excel_util.get_data() @ddt class RegisterDDTCase(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get("http://www.yundama.com/index/reg") self.driver.maximize_window() self.register_business = RegisterDDTBusiness(self.driver) def tearDown(self): self.driver.close() @data(*datas) def test_register_success(self, datas): username, password, password2, email, answer, code, assert_text = datas self.assertTrue( self.register_business.register_main(username, password, password2, email, answer, code, assert_text), assert_text)
def __init__(self, driver): self.driver = driver self.register_handle = RegisterHandle(driver) self.file_name = PathUtil.get_file_path("img/code.png")