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()
예제 #2
0
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
예제 #3
0
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
예제 #4
0
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
예제 #5
0
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
예제 #6
0
 def setUp(self):
     self.case_path = run_path()  # 测试用例的路径
     self.report_path = test_report_path()  # 报告存放路径
     print(self.report_path, '\n', self.case_path)
예제 #7
0
# -*- 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
예제 #9
0
# -*- 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)