Ejemplo n.º 1
0
class AppEngine():
    def __init__(self):
        # 创建日志实例
        self.mylog = Logger(logger='appEngine').getlog()
        # 读取配置文件中的启动appium需要的参数
        conf = MyConfig()
        # 读取ini文件
        filePath = os.path.dirname(os.path.dirname(__file__))
        conf.read(filePath + '\\config\\config.ini', encoding='utf-8')
        self.mylog.info("读取文件../config/config.ini")
        # 获取选择的section的名字
        sel = conf.get('select', 'app')
        self.mylog.info("选择的手机参数为{}下的值".format(sel))
        # 获取上面获取的section下的所有options的值
        self.options = conf.items(sel)
        self.url = 'http://localhost:{}/wd/hub'.format(
            conf.get('appium', 'port'))
        self.mylog.info("链接appium的地址为:{}".format(self.url))

    # 开启app
    def open_app(self):
        # 转换成caps
        caps = {}
        for i in self.options:
            caps[i[0]] = i[1]
        try:
            self.driver = webdriver.Remote(self.url, caps)
            self.mylog.info("与appium链接成功")
            return self.driver
        except exceptions.MaxRetryError:
            self.mylog.error("请求多次appium失败,查看服务是否有问题")
        except Exception as e:
            self.mylog.error("报错信息:{}".format(e))

    # 关闭app
    def quit_app(self):
        self.driver.quit()
Ejemplo n.º 2
0
import os

logger = Logger('ClassBox').logger

report_path = os.path.abspath('.') + '/test_reports/'

# 获取系统当前时间
now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))

# 设置报告名称格式
HtmlFile = report_path + now + "HTMLtemplate.html"
fp = open(HtmlFile, "wb")

# 构建suite

if __name__ == '__main__':
    suite = unittest.TestLoader().discover(os.path.abspath('.') + '/testsuits')

    # 初始化一个HTMLTestRunner实例对象,用来生成报告

    logger.info('课程格子app测试开始')
    runner = HTMLTestRunner(stream=fp,
                            title=u"课程格子项目测试报告",
                            description=u"测试app的安装和卸载",
                            verbosity=2)
    # print(suite)
    # 开始执行测试套件
    runner.run(suite)
    logger.info('app测试结束')
    logger.info("测试报告已存入到'/test_reports'中")
    fp.close()
Ejemplo n.º 3
0
HtmlFile = report_path + ReportName
fp = open(HtmlFile, "wb")

# 定义测试用例的目录为当前目录
# test_dir = './'
# discover = unittest.defaultTestLoader.discover(test_dir,pattern='test*.py')

# 构建suite
suite_path = os.path.dirname(os.path.abspath('.')) + '/testsuites/'
suite = unittest.TestSuite()

suite.addTest(OrderNew("test_order_new"))
suite.addTest(ProjectManager("test_project_manager"))
suite.addTest(ProjectExecute("test_project_execute"))
suite.addTest(ExportNotice("test_export_notice"))
suite.addTest(PurchaseRequest("test_purchase_request"))
suite.addTest(PurchaseOrder("test_purchase_order"))

if __name__ == '__main__':

    # 初始化一个HTMLTestRunner实例对象,用来生成报告
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
                                           title=u"订单交付系统测试报告",
                                           description=u"用例测试情况",
                                           verbosity=2)
    # 开始执行测试套件
    runner.run(suite)
    fp.close()
    OrderBase.sql_update('html_report', ReportName)
    logger.info("Now, The HTML report is generated.Plz check in %s" % HtmlFile)
Ejemplo n.º 4
0
import unittest, time, re, sys
sys.path.append(r"F:\\selenium-py\\")
from framework.logger import Logger

logger = Logger(logger="MYtest").getlog()

# 加启动配置

option = webdriver.ChromeOptions()

option.add_argument('disable-infobars')

#return webdriver.Chrome(chrome_options = option,desired_capabilities = None)

dr = webdriver.Chrome(chrome_options=option)
logger.info("You had select %s browser." % dr)


#dr =webdriver.Firefox()
class MYtest(unittest.TestCase):
    def setUp(self, driver=dr):
        self.driver = driver
        self.driver.maximize_window()
        logger.info("browser maximize the current window.")
        self.driver.implicitly_wait(10)
        self.base_url = "http://oa.eascs.com/eaoa/"
        logger.info("Open browser url is: %s" % self.base_url)
        self.verificationErrors = []

    def tearDown(self):
        try:
Ejemplo n.º 5
0
         UnStandard.append(Accuracy)
     dic = {
         'ID': x + 1,
         'Name': cf.get("Data", str(i)),
         'Code': i,
         'Numbertest': len(Numbertests),
         'PASS': len(passlist),
         "FAIL": len(faillist),
         'ERROR': len(errorlist),
         'Accuracy': Accuracylist
     }
     SumNumbers.append(len(Numbertests))
     SumPass.append(len(passlist))
     SumFail.append(len(faillist))
     SummaryExcle(filepath, dic, title, 7)  # excle文件路径、输入数据,写入工作表名称,结果颜色列
     logger.info(dic)
 dic_hz = {
     'Totaltype':
     '%s识别测试类别数:%s' % (cf.get("Config", 'TestName'), len(SumNumbers)),
     'SumNumbers':
     '识别总数(次数、图片总数):%s' % sum(SumNumbers),
     'SumPass':
     '******' % sum(SumPass),
     'SumFail':
     '识别不准确数:%s' % sum(SumFail),
     'Standard':
     '识别准确率达标数:%s' % len(Standard),
     'UnStandard':
     '识别准确率未达标数:%s' % len(UnStandard),
     'threshold':
     '准确率标准为不低于%s' % "%.2f%%" % (threshold * 100),
Ejemplo n.º 6
0
    def test_print_and_send(self):

        #  参数   ----------------------------------
        address = '张放1'
        tem = '顺丰热敏180mm'
        #   ----------------------------------------------
        logger = Logger(logger="BasePage").getlog()
        #初始化登录界面,并登录
        loginpage = Loginpage(self.driver)
        loginpage.type_username('12830222909')
        loginpage.type_password('1qaz2wsx')
        self.driver.find_element_by_id('submit').click()

        time.sleep(3)
        # 定义一个指定的订单

        # 切换到当前frame
        frame1 = self.driver.find_element_by_id('container-i')
        self.driver.switch_to_frame(frame1)
        time.sleep(3)

        # 页面实例化
        orderpage = OrderPage(self.driver)

        # 根据指定的收件地址选择订单
        self.driver.find_element_by_xpath('//td[text()="%s"]' %
                                          address).click()
        # 点击打印快递单
        orderpage.click_print()
        time.sleep(1)
        # 选择模板
        self.driver.find_element_by_xpath('//label[text()="%s"]' % tem).click()
        # 选择打印机
        orderpage.choose_printer('Microsoft XPS Document Writer')
        # 点击打印
        orderpage.click_print1()
        time.sleep(1)
        # 确定打印
        orderpage.yes_print()
        time.sleep(4)
        # 验证打印结果--------------------------------------------------------------------------------------------------
        row1 = orderpage.element_row('张放1')
        x = '//*[@id="tableDiv"]/table/tbody[2]/tr[%s]/td[1]/i' % row1  # 打印标志
        try:
            if orderpage.is_element_exist(x):
                self.assertTrue(True)
                logger.info('打印成功')
            else:
                self.assertTrue(False)
        except BaseException as e:
            self.assertTrue(False)
        # --------------------------------------------------------------------------------------------------------------
        orderpage.click_consignBtn()
        time.sleep(3)
        # 验证发货合计信息是否正确--------------------------------------------------------------------------------------
        info1 = orderpage.get_consignment_info()
        print(info1)
        try:
            if info1 == '发货合计:共1单':
                self.assertTrue(True)
                logger.info('选择一条订单进行发货')
            else:
                orderpage.get_windows_img()
                self.assertTrue(False)
        except BaseException as e:
            self.assertTrue(False)
        time.sleep(2)
        # 点击确定
        orderpage.click_qdConsign()
        time.sleep(4)
        # 验证发货结果
        info2 = orderpage.get_consignResult_info()
        try:
            if info2 == '共1单,成功1单,失败0单':
                self.assertTrue(True)
                logger.info('一条订单发货成功')
            else:
                orderpage.get_windows_img()
                self.assertTrue(False)
        except BaseException as e:
            self.assertTrue(False)

        # 关闭发货弹框
        orderpage.click_confirm_close()
        time.sleep(2)
        # 跳出frame
        self.driver.switch_to.default_content()
        # 退出登录
        loginpage.skin01_logout()
        time.sleep(3)
Ejemplo n.º 7
0
import time
from framework.logger import Logger


class GetTime(object):
    def get_system_time(self):
        print(time.time())
        print(time.localtime())
        new_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
        print(new_time)


localtime = GetTime()
localtime.get_system_time()
mylogger = Logger(logger='get_time').get_log()
mylogger.info('test')


def convert(n):
    num = abs(n)
    newNum = 0
    a = 1
    while num > 0:
        temp = num % 7
        num = num // 7
        newNum += temp * a
        a *= 10
    if n > 0:
        return newNum
    else:
        return -newNum
Ejemplo n.º 8
0
from framework.logger import Logger

log = Logger(logger='log').getlog()
print(log.info('cesi'))

input_box = "id=>kw"
search_submit_bth = "xpath=>//*[@id='su']"
a = input_box.split('=>')[0]
b = input_box.split('=>')[1]
print(a)
print(b)
Ejemplo n.º 9
0
class BasePage(object):
    def __init__(self, driver):
        self.driver = driver
        self.logger = Logger(self.__class__.__name__).getLogger()

    def get(self, url):
        try:
            self.driver.get(url)
            self.logger.info('open url:{0}'.format(url))
        except Exception as e:
            self.logger.error('open url:{0} failed'.format(url))

    def get_window_img(self):
        imgpath = config.get("img", "imgPath")
        imgName = imgpath + rq + '.png'
        try:
            self.driver.get_screenshot_as_file(imgName)
            self.logger.info('save screenshot succeed')
        except Exception as e:
            self.logger.error('save screenshot failed {0}'.format(e))

    def find_element(self, locator):
        #切割传入的字符串分离出查找类型和表达式
        el = ''
        if '=>' not in locator:
            raise ValueError('locator must split by =>')
        locator_by_str = locator.split('=>')[0]
        locator_value = locator.split('=>')[1]
        locator_by = eval(
            "self.driver.find_element_by_{0}".format(locator_by_str))
        try:
            el = locator_by(locator_value)
            self.logger.info('find element {0}:{1}'.format(
                locator_by_str, locator_value))
        except NoSuchElementException:
            self.logger.error('no such element {0}:{1}'.format(
                locator_by_str, locator_value))
            self.get_window_img()
        except AttributeError as e:
            self.logger.error('incorrect locator type')
        return el

    def type(self, locator, text):
        el = self.find_element(locator)
        # el.clear()
        try:
            el.send_keys(text)
            self.logger.info('input value:{0}'.format(text))
        except Exception as e:
            self.logger.error('input value:{0} failed'.format(text))
            self.get_window_img()

    def click(self, locator):
        el = self.find_element(locator)
        try:
            el.click()
            self.logger.info('click element:{0}'.format(locator))
        except Exception as e:
            self.logger.error('click element:{0} failed'.format(locator))

    def refresh(self):
        self.driver.refresh()
        self.logger.info('page refresh')

    def get_page_title(self):
        self.logger.info('current page title is {0}'.format(self.driver.title))
        return self.driver.title
Ejemplo n.º 10
0
test_dir = './testsuits'
suite = unittest.defaultTestLoader.discover(test_dir, pattern="test*.py")

#构建测试集
# suite = unittest.TestLoader().loadTestsFromTestCase(LoginTest)
# logger.info('构建测试集')
# 定义报告生成路径
report_path = '.' + '/report/test_report/'
# 格式化时间
now_time = time.strftime("%Y_%m_%d_%H_%M_%S", time.localtime(time.time()))
# 测试报告生成格式
HtmlFile = report_path + now_time + "result.html"

if __name__ == '__main__':

    ####################生成报告#################
    # 生成测试报告
    with open(HtmlFile, 'wb+') as f:
        HTMLTestRunner(stream=f, title="XX项目测试报告",
                       description="用例执行情况").run(suite)
    logger.info('生成测试报告')

    ####################发邮件#################
    # 测试报告目录
    new_path = report_path
    # 查找最新的测试报告文件
    rp = Report()
    new_report = rp.get_new_file(new_path)
    # 发送测试报告,带附件
    rp.send_mail_attr(new_report)
Ejemplo n.º 11
0
 def quit_browser(self):
     Logger.info("Now, Close and quit the browser.")
     self.driver.quit()
Ejemplo n.º 12
0
import os
import configparser as cparser
from framework.logger import Logger


# ===============读取email_config.ini文件设置============

logger=Logger(__name__).logger
base_dir = str(os.path.dirname(os.path.dirname(__file__)))
# base_dir = base_dir.replace('\\','/') #多余本身/
file_path = base_dir + "/config/config.ini"
cf = cparser.ConfigParser()
cf.read(file_path, encoding='utf-8')
browsers = cf.get("browserType", "browserName")
logger.info("You had select %s browser." % browsers)
url_c = cf.get("testServer", "URL")
logger.info("The test server url is: %s" % url_c)