def setUp(self): # 实例化一个火狐配置文件 fp = browse_driver.FirefoxProfile() # 设置各项参数,参数可以通过在浏览器地址栏中输入about:config查看。 # 设置成0代表下载到桌面,1代表浏览器默认下载路径;设置成2则可以保存到指定目录 fp.set_preference("browser.download.folderList", 2) # 是否显示开始,(个人实验,不管设成True还是False,都不显示开始,直接下载) fp.set_preference("browser.download.manager.showWhenStarting", False) # 下载到指定目录 fp.set_preference("browser.download.dir", test_report_path()) # 路径名称文件夹设置成英文,不然不能下载到指定目录 # 不询问下载路径;后面的参数为要下载页面的Content-type的值 fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/vnd.ms-excel") config = ConfigParser() config.read(setting_path()) self.file_path = r'C:\Users\%s\Desktop\UIAutotest\Page\file\1.jpg' % (str(getpass.getuser())) self.driver = browse_driver.Firefox(firefox_profile=fp) self.driver.maximize_window() self.driver.get(config.get('testUrl', 'url')) self.username = config.get('labor', 'Wuhuigang') self.password = config.get('operation', 'password') ws_url = config.get('testUrl', 'ws_test_url') ws = create_connection("ws://%s/wsapi" % ws_url) self.ws_driver = BuilderBaseFunc(ws, ws_url) self.payroll_name = get_people_name() self.mobile = get_mobile() self.code = '11111' self.people_name = get_people_name() # 随机身份证 self.identity = getDistrictCode()
def send_mail(to_list, sub, content): me = mail_user + "@" + mail_postfix new_report = [test_report_path() + "\\result.html", "result.html"] print(new_report[0]) msg = MIMEMultipart() msg['Subject'] = sub # 主题 msg['From'] = me msg['To'] = ";".join(to_list) # 将收件人列表以‘;’分隔 # 文本内容 text_content = MIMEText(content) msg.attach(text_content) # 附件 attachment = MIMEApplication(open(new_report[0], 'rb').read()) attachment.add_header("Content-Disposition", "attachment", filename=new_report[1]) msg.attach(attachment) try: server = smtplib.SMTP(mail_host, timeout=30) server.set_debuglevel(1) server.starttls() server.login(mail_user, mail_pass) server.sendmail(me, to_list, msg.as_string()) server.quit() return True except Exception as e: print(str(e)) return False
def get_temporary_mobile_number(): from run_path import test_report_path from openpyxl import load_workbook new_report = [test_report_path() + "\\mobile_number.xlsx"] wb1 = load_workbook(filename=new_report[0]) sheets = wb1.get_sheet_names() # 获取所有的表格 print(sheets) sheets_first = sheets[0] # 获取第一个表 ws1 = wb1.get_sheet_by_name(sheets_first) return ws1['A1'].value
def temporary_mobile_number(workers_name): from run_path import test_report_path from openpyxl import Workbook new_report = [test_report_path() + "\\mobile_number.xlsx"] print(new_report[0]) # 在内存中创建一个workbook对象,而且会至少创建一个 worksheet wb = Workbook() ws = wb.active ws['A1'] = str(workers_name) # 保存 wb.save(filename=new_report[0]) return True
def send_mail(to_list, sub, content, mail_user, mail_pass): """ :param to_list: 收件人 :param sub: 主题 :param content: 文本内容 :param mail_user: 发送的人 :param mail_pass: 发送人的密码 :return: """ mail_postfix = "qq.com" # 邮箱的后缀 mail_host = "smtp.qq.com" # 使用的邮箱的smtp服务器地址,这里是qq的smtp地址 me = mail_user + "@" + mail_postfix # 赋值 new_report = [test_report_path() + "\\测试报告.html", "测试报告.html"] print(new_report[0]) msg = MIMEMultipart() msg['Subject'] = sub # 主题 msg['From'] = _format_addr('测试报告 <%s>' % me) # 昵称+ 邮箱地址 msg['To'] = ";".join(to_list) # 将收件人列表以‘;’分隔 # 文本内容 text_content = MIMEText(content, 'plain', 'utf-8') msg.attach(text_content) # 附件 attachment = MIMEApplication(open(new_report[0], 'rb').read()) attachment.add_header("Content-Disposition", "attachment", filename=new_report[1]) msg.attach(attachment) try: server = smtplib.SMTP(mail_host, timeout=30) server.set_debuglevel(1) server.starttls() server.login(mail_user, mail_pass) server.sendmail(me, to_list, msg.as_string()) server.quit() return True except Exception as e: print(str(e)) return False
def setUp(self): self.case_path = run_path() # 测试用例的路径 self.report_path = test_report_path() # 报告存放路径 print(self.report_path, '\n', self.case_path)
# -*- coding: utf-8 -*- import os import random from faker import Factory from run_path import test_report_path fake = Factory().create('zh_CN') print(fake.phone_number()) print(fake.name()) print(fake.address()) print(fake.email()) report = os.path.join(test_report_path(), '59017-12工资单.xls') os.remove(report)
def new_payroll(driver, payroll_name, money): # 薪资管理 try: into_one_level(driver, '工程面板') sleep(1) into_two_level(driver, '薪资管理') get_element(driver, ('xpath', "//button[@class='btn btn-primary']")).click() # 工程名称 get_element(driver, ('xpath', "//select[@id='kkkk']/option[2]")).click() # 输入工资月份 get_now_dates() setting_input_time(driver) r = r'\d{4}-\d{2}' text = re.findall(r, get_now_dates()) get_element( driver, ('xpath', "//input[@class='form-control form-n-y-1']")).send_keys(text) # 工资单名称 get_element(driver, ('id', 'createProllNameAll')).clear() sleep(0.2) get_element(driver, ('id', 'createProllNameAll')).send_keys(payroll_name) # 确定按钮 get_element( driver, ('xpath', "//button[@class='btn btn-primary proll-btn-com']")).click() sleep(1) # 增加最后一个人 get_elements(driver, ( 'xpath', "//div[@id='createrProll']/div[3]/div[1]/div[2]/div/div[1]/div/div/div/span[2]" ))[-1].click() sleep(0.5) get_element(driver, ('xpath', "//a[contains(text(),'移除')]")).click() sleep(1) if is_element_present_3s(driver, ('xpath', "//tr[1]/td[7]/input"), 3): print("移除失败") assert False else: pass get_elements(driver, ( 'xpath', "//div[@id='createrProll']/div[3]/div[1]/div[2]/div/div[1]/div/div/div/span[2]" ))[-1].click() get_element(driver, ('xpath', "//tr[1]/td[5]/a")).click() get_elements(driver, ('xpath', "//input[@class='form-control']"))[1].send_keys( get_bank_card_number()[2:18]) get_element(driver, ('xpath', "//button[contains(text(),'确定')]")).click() # 发放金额 get_element(driver, ('xpath', "//input[@class='pay-money']")).send_keys(money) sleep(3) get_element(driver, ('xpath', "//button[contains(text(),'保存')]")).click() sleep(0.5) get_element( driver, ('xpath', "//table[@id='project-proll-release']/tbody/tr[1]/td[7]/a[1]" )).click() assert is_element_present_3s(driver, ('xpath', "//input[@class='pay-money']"), 3), "保存失败" sleep(3) get_element(driver, ('xpath', "//button[contains(text(),'保存')]")).click() sleep(0.5) get_element( driver, ('xpath', "//table[@id='project-proll-release']/tbody/tr[1]/td[7]/a[2]" )).click() sleep(3) report = os.path.join(test_report_path(), payroll_name + '.xls') import win32com.client sleep(1) excel = win32com.client.gencache.EnsureDispatch('Excel.Application') sleep(0.1) wb = excel.Workbooks.Open(report) sleep(2) wb.SaveAs(report + 'x', FileFormat=51) wb.Close() excel.Application.Quit() # 删除旧的xls sleep(0.5) os.remove(report) new_report = os.path.join(test_report_path(), payroll_name + '.xlsx') wb1 = load_workbook(filename=new_report) sheets = wb1.get_sheet_names() # 获取所有的表格 print(sheets) sheets_first = sheets[0] # 获取第一个表 ws1 = wb1.get_sheet_by_name(sheets_first) print(ws1['F2'].value) assert money == ws1['F2'].value, "下载文件内容显示不正确" os.remove(new_report) except Exception as e: bug_photo(driver) print(e) assert False
# -*- coding: utf-8-*- # auth cy import unittest from Page.web import HTMLTestRunner_screenshot from run_path import run_path, test_report_path case_path = run_path() # 测试用例的路径 report_path = test_report_path() # 报告存放路径 print(report_path, '\n', case_path) if __name__ == "__main__": discover = unittest.defaultTestLoader.discover(case_path, "test_*.py", top_level_dir=None) print(discover) run = HTMLTestRunner_screenshot.HTMLTestRunner( title="测试报告", description="测试用例参考", stream=open(report_path + "\\result.html", "wb"), verbosity=2, retry=0) run.run(discover)