Exemple #1
0
class Login(object):

    # 构造函数
    def __init__(self):
        self.pa = PageAction()
        self.pc = ParseConfig()
        self.log = Log()

    # 登录方法
    def loginMethod(self):
        # 打开浏览器
        self.pa.openBrowser(self.pc.getValue("addres", "url"))
        self.log.info("打开浏览器")
        # 输入用户名
        self.pa.pageMotion(motion="input", locatorExpression="//input[@placeholder='请输入账号']",
                           value=self.pc.getValue("login", "username"))
        self.log.info("输入用户名")
        # 输入密码
        self.pa.pageMotion(motion="input", locatorExpression="//input[@placeholder='请输入密码']",
                           value=self.pc.getValue("login", "password"))
        self.log.info("输入密码")
        # 点击登录
        self.pa.pageMotion(motion="click", locatorExpression="//button[@type='button']")
        self.log.info("点击登录")
Exemple #2
0
class SelectTheSorting(object):

    # 构造函数
    def __init__(self):
        self.login = Login()
        self.pa = PageAction()
        self.pj = ParseJson()
        self.log = Log()

    def selectSort(self, area, branch):
        # 登录
        self.login.loginMethod()
        # 选择区域
        # if area == "北京区域":
        # 选择区域
        self.pa.pageMotion(motion='click', locatorExpression="//input[@placeholder='请选择二级组织']")

        self.pa.pageMotion(motion='click', locatorExpression="//span[contains(text()," + "'" + area + "' " + ")]")
        self.log.info("选择" + area)
        if branch != None:
            self.pa.pageMotion(motion='click', locatorExpression="//input[@placeholder='请选择三级组织']")
            self.pa.pageMotion(motion='click', locatorExpression="//span[contains(text()," + "'" + branch + "' " + ")]")
            self.log.info("选择" + branch)
        else:
            pass
        # print("//span[contains(text(),"+"'"+area+"' " +")]")
        # 选择角色
        self.pa.pageMotion(motion='click', locatorExpression="//input[@placeholder='请选择角色']")
        self.pa.pageMotion(motion='click', locatorExpression="//span[contains(text(), '分院IT')]")
        self.log.info("选择分院IT角色")
        self.pa.pageMotion(motion='click_sleep', locatorExpression="//button[@type='button']")
        self.log.info("点击进入")

    def role(self):
        # print(self.pj.getRoleData("area"))
        # print()
        self.pa.pageMotion(motion='click', locatorExpression="//input[@placeholder='请选择二级组织']")
        self.pa.pageMotion(motion='click', locatorExpression="//span[contains(text()," + "'" + self.pj.getRoleData(
            "area") + "' " + ")]")
        self.pa.pageMotion(motion='click', locatorExpression="//input[@placeholder='请选择三级组织']")
        self.pa.pageMotion(motion='click', locatorExpression="//span[contains(text()," + "'" + self.pj.getRoleData(
            "branch") + "' " + ")]")
Exemple #3
0
class TestCase(object):

    # 构造函数
    def __init__(self):
        self.parseExcel = ParseExcel()
        self.log = Log()
        self.select = SelectTheSorting()
        self.pa = PageAction()
        self.pj = ParseJson()
        self.rm = RequestMethod()

    # 加载测试用例
    # @app.task
    def ruCase(self, area, branch):
        '''

        :return: 运行测试用例
        '''
        # select = SelectTheSorting()
        self.select.selectSort(area, branch)
        startTime, excel_id, excel_step, excel_motion, excel_locatorExpression, \
        excel_hoverLocator, excel_value, excel_expect, excel_getText, \
        excel_locatorExpressionResult, excel_runResult = self.parseExcel.getCaseData()
        self.log.info("用例开始时间:" + startTime)
        # print(excel_id)
        # print(excel_step)
        # print(excel_motion)
        # print(len(excel_id))
        # print(excel_getText)
        caseNum = len(excel_id) - 1
        pass_count = []
        fail_count = []
        exception = []
        for i in range(len(excel_id)):
            # print(i)
            id = str(excel_id[i])
            step = excel_step[i]
            motion = excel_motion[i]
            # print(motion)
            locatorExpression = excel_locatorExpression[i]
            hoverLocator = excel_hoverLocator[i]
            value = excel_value[i]
            getText = excel_getText[i]
            # print(getText)
            expect = excel_expect[i]
            locatorExpressionResult = excel_locatorExpressionResult[i]
            # print(locatorExpressionResult)
            if motion == "click":
                self.pa.pageMotion(motion=motion, locatorExpression=locatorExpression)
                result = self.pa.pageMotion(motion=getText, locatorExpression=locatorExpressionResult)
                try:
                    if expect in result:
                        self.parseExcel.writeCell(i + 2, 10, "pass")
                        self.log.info("第" + id + "步:" + step + "-----pass")
                        pass_count.append(i)
                    else:
                        self.parseExcel.writeCell(i + 2, 10, "fail")
                        self.log.info("第" + id + "步:" + step + "-----fail")
                        fail_count.append(i)
                        self.pa.pageMotion(motion='quit')
                        break
                except:
                    self.parseExcel.writeCell(i + 2, 10, "fail")
                    self.log.info("第" + id + "步:" + step + "-----exception")
                    exception.append(i)
                    self.pa.pageMotion(motion='quit')
                    break

                self.rm.runMethod(caseCount=caseNum, startTime=startTime, casePresent=id)

            elif motion == "click_bottom":
                self.pa.pageMotion(motion=motion, locatorExpression=locatorExpression)
                result = self.pa.pageMotion(motion=getText, locatorExpression=locatorExpressionResult)
                try:
                    if expect in result:
                        self.parseExcel.writeCell(i + 2, 10, "pass")
                        self.log.info("第" + id + "步:" + step + "-----pass")
                        pass_count.append(i)
                    else:
                        self.parseExcel.writeCell(i + 2, 10, "fail")
                        self.log.info("第" + id + "步:" + step + "-----fail")
                        fail_count.append(i)
                        self.pa.pageMotion(motion='quit')
                        break
                except:
                    self.parseExcel.writeCell(i + 2, 10, "fail")
                    self.log.info("第" + id + "步:" + step + "-----exception")
                    exception.append(i)
                    self.pa.pageMotion(motion='quit')
                    break

                self.rm.runMethod(caseCount=caseNum, startTime=startTime, casePresent=id)

            elif motion == "click_top":
                self.pa.pageMotion(motion=motion, locatorExpression=locatorExpression)
                result = self.pa.pageMotion(motion=getText, locatorExpression=locatorExpressionResult)
                try:
                    if expect in result:
                        self.parseExcel.writeCell(i + 2, 10, "pass")
                        self.log.info("第" + id + "步:" + step + "-----pass")
                        pass_count.append(i)
                    else:
                        self.parseExcel.writeCell(i + 2, 10, "fail")
                        self.log.info("第" + id + "步:" + step + "-----fail")
                        fail_count.append(i)
                        self.pa.pageMotion(motion='quit')
                        break
                except:
                    self.parseExcel.writeCell(i + 2, 10, "fail")
                    self.log.info("第" + id + "步:" + step + "-----exception")
                    exception.append(i)
                    self.pa.pageMotion(motion='quit')
                    break

                self.rm.runMethod(caseCount=caseNum, startTime=startTime, casePresent=id)

            elif motion == "input":
                if value == 'number':
                    self.pa.pageMotion(motion=motion, locatorExpression=locatorExpression,
                                       value=self.pj.getJsonData(value))
                    result = self.pa.pageMotion(motion=getText, locatorExpression=locatorExpressionResult)
                    try:
                        if self.pj.getJsonData(value) in result:
                            self.parseExcel.writeCell(i + 2, 10, "pass")
                            self.log.info("第" + id + "步:" + step + "-----pass")
                            pass_count.append(i)
                        else:
                            self.parseExcel.writeCell(i + 2, 10, "fail")
                            self.log.info("第" + id + "步:" + step + "-----fail")
                            fail_count.append(i)
                            self.pa.pageMotion(motion='quit')
                            break
                    except:
                        self.parseExcel.writeCell(i + 2, 10, "fail")
                        self.log.info("第" + id + "步:" + step + "-----exception")
                        exception.append(i)
                        self.pa.pageMotion(motion='quit')
                        break
                    self.rm.runMethod(caseCount=caseNum, startTime=startTime, casePresent=id)
                else:
                    self.pa.pageMotion(motion=motion, locatorExpression=locatorExpression, value=value)
                    result = self.pa.pageMotion(motion=getText, locatorExpression=locatorExpressionResult)
                    if isinstance(expect, int):
                        expect = str(expect)
                        try:
                            if expect in result:
                                self.parseExcel.writeCell(i + 2, 10, "pass")
                                self.log.info("第" + id + "步:" + step + "-----pass")
                                pass_count.append(i)

                            else:
                                self.parseExcel.writeCell(i + 2, 10, "fail")
                                self.log.info("第" + id + "步:" + step + "-----fail")
                                fail_count.append(i)
                                self.pa.pageMotion(motion='quit')
                                break
                        except:
                            self.parseExcel.writeCell(i + 2, 10, "fail")
                            self.log.info("第" + id + "步:" + step + "-----exception")
                            exception.append(i)
                            self.pa.pageMotion(motion='quit')
                            break
                        self.rm.runMethod(caseCount=caseNum, startTime=startTime, casePresent=id)
                    else:
                        try:
                            if expect in result:
                                self.parseExcel.writeCell(i + 2, 10, "pass")
                                self.log.info("第" + id + "步:" + step + "-----pass")
                                pass_count.append(i)

                            else:
                                self.parseExcel.writeCell(i + 2, 10, "fail")
                                self.log.info("第" + id + "步:" + step + "-----fail")
                                fail_count.append(i)
                                self.pa.pageMotion(motion='quit')
                                break
                        except:
                            self.parseExcel.writeCell(i + 2, 10, "fail")
                            self.log.info("第" + id + "步:" + step + "-----exception")
                            exception.append(i)
                            self.pa.pageMotion(motion='quit')
                            break
                        self.rm.runMethod(caseCount=caseNum, startTime=startTime, casePresent=id)

            elif motion == "hover":
                self.pa.pageMotion(motion=motion, locatorExpression=locatorExpression)
                result = self.pa.pageMotion(motion=getText, locatorExpression=locatorExpressionResult)
                try:
                    if expect in result:
                        self.parseExcel.writeCell(i + 2, 10, "pass")
                        self.log.info("第" + id + "步:" + step + "-----pass")
                        pass_count.append(i)
                    else:
                        self.parseExcel.writeCell(i + 2, 10, "fail")
                        self.log.info("第" + id + "步:" + step + "-----fail")
                        fail_count.append(i)
                        self.pa.pageMotion(motion='quit')
                        break
                except:
                    self.parseExcel.writeCell(i + 2, 10, "fail")
                    self.log.info("第" + id + "步:" + step + "-----exception")
                    exception.append(i)
                    self.pa.pageMotion(motion='quit')
                    break

                self.rm.runMethod(caseCount=caseNum, startTime=startTime, casePresent=id)

            elif motion == "double_click":
                self.pa.pageMotion(motion=motion, locatorExpression=locatorExpression)
                result = self.pa.pageMotion(motion=getText, locatorExpression=locatorExpressionResult)
                try:
                    if expect in result:
                        self.parseExcel.writeCell(i + 2, 10, "pass")
                        self.log.info("第" + id + "步:" + step + "-----pass")
                        pass_count.append(i)
                    else:
                        self.parseExcel.writeCell(i + 2, 10, "fail")
                        self.log.info("第" + id + "步:" + step + "-----fail")
                        fail_count.append(i)
                        self.pa.pageMotion(motion='quit')
                        break

                except:
                    self.parseExcel.writeCell(i + 2, 10, "fail")
                    self.log.info("第" + id + "步:" + step + "-----exception")
                    exception.append(i)
                    self.pa.pageMotion(motion='quit')
                    break
                self.rm.runMethod(caseCount=caseNum, startTime=startTime, casePresent=id)

            elif motion == "double_click_esc":
                self.pa.pageMotion(motion=motion, locatorExpression=locatorExpression)
                result = self.pa.pageMotion(motion=getText, locatorExpression=locatorExpressionResult)
                try:
                    if expect in result:
                        self.parseExcel.writeCell(i + 2, 10, "pass")
                        self.log.info("第" + id + "步:" + step + "-----pass")
                        pass_count.append(i)
                    else:
                        self.parseExcel.writeCell(i + 2, 10, "fail")
                        self.log.info("第" + id + "步:" + step + "-----fail")
                        fail_count.append(i)
                        self.pa.pageMotion(motion='quit')
                        break
                except:
                    self.parseExcel.writeCell(i + 2, 10, "fail")
                    self.log.info("第" + id + "步:" + step + "-----exception")
                    exception.append(i)
                    self.pa.pageMotion(motion='quit')
                    break

                self.rm.runMethod(caseCount=caseNum, startTime=startTime, casePresent=id)

            elif motion == "enter":
                self.pa.pageMotion(motion=motion, locatorExpression=locatorExpression)
                result = self.pa.pageMotion(motion=getText, locatorExpression=locatorExpressionResult)
                try:
                    if expect in result:
                        self.parseExcel.writeCell(i + 2, 10, "pass")
                        self.log.info("第" + id + "步:" + step + "-----pass")
                        pass_count.append(i)
                    else:
                        self.parseExcel.writeCell(i + 2, 10, "fail")
                        self.log.info("第" + id + "步:" + step + "-----fail")
                        fail_count.append(i)
                        self.pa.pageMotion(motion='quit')
                        break
                except:
                    self.parseExcel.writeCell(i + 2, 10, "fail")
                    self.log.info("第" + id + "步:" + step + "-----exception")
                    exception.append(i)
                    self.pa.pageMotion(motion='quit')
                    break

                self.rm.runMethod(caseCount=caseNum, startTime=startTime, casePresent=id)

            elif motion == "top":
                self.pa.pageMotion(motion=motion)
                result = self.pa.pageMotion(motion=getText, locatorExpression=locatorExpressionResult)
                try:
                    if expect in result:
                        self.parseExcel.writeCell(i + 2, 10, "pass")
                        self.log.info("第" + id + "步:" + step + "-----pass")
                        pass_count.append(i)
                    else:
                        self.parseExcel.writeCell(i + 2, 10, "fail")
                        self.log.info("第" + id + "步:" + step + "-----fail")
                        fail_count.append(i)
                        self.pa.pageMotion(motion='quit')
                        break
                except:
                    self.parseExcel.writeCell(i + 2, 10, "fail")
                    self.log.info("第" + id + "步:" + step + "-----exception")
                    exception.append(i)
                    self.pa.pageMotion(motion='quit')
                    break

                self.rm.runMethod(caseCount=caseNum, startTime=startTime, casePresent=id)

            elif motion == "click_esc":
                self.pa.pageMotion(motion=motion, locatorExpression=locatorExpression)
                result = self.pa.pageMotion(motion=getText, locatorExpression=locatorExpressionResult)
                try:
                    if expect in result:
                        self.parseExcel.writeCell(i + 2, 10, "pass")
                        self.log.info("第" + id + "步:" + step + "-----pass")
                        pass_count.append(i)
                    else:
                        self.parseExcel.writeCell(i + 2, 10, "fail")
                        self.log.info("第" + id + "步:" + step + "-----fail")
                        fail_count.append(i)
                        self.pa.pageMotion(motion='quit')
                        break
                except:
                    self.parseExcel.writeCell(i + 2, 10, "fail")
                    self.log.info("第" + id + "步:" + step + "-----exception")
                    exception.append(i)
                    self.pa.pageMotion(motion='quit')
                    break

                self.rm.runMethod(caseCount=caseNum, startTime=startTime, casePresent=id)

            elif motion == "click_role":
                self.select.role()
                self.pa.pageMotion(motion=motion, locatorExpression=locatorExpression)
                result = self.pa.pageMotion(motion=getText, locatorExpression=locatorExpressionResult)
                try:
                    if expect in result:
                        self.parseExcel.writeCell(i + 2, 10, "pass")
                        self.log.info("第" + id + "步:" + step + "步" + "-----pass")
                        pass_count.append(i)
                    else:
                        self.parseExcel.writeCell(i + 2, 10, "fail")
                        self.log.info("第" + id + "步:" + step + "-----fail")
                        fail_count.append(i)
                        self.pa.pageMotion(motion='quit')
                        break
                except:
                    self.parseExcel.writeCell(i + 2, 10, "fail")
                    self.log.info("第" + id + "步:" + step + "-----exception")
                    exception.append(i)
                    self.pa.pageMotion(motion='quit')
                    break

                self.rm.runMethod(caseCount=caseNum, startTime=startTime, casePresent=id)

            elif motion == "click_sleep":
                self.pa.pageMotion(motion=motion, locatorExpression=locatorExpression)
                result = self.pa.pageMotion(motion=getText, locatorExpression=locatorExpressionResult)
                try:
                    if expect in result:
                        self.parseExcel.writeCell(i + 2, 10, "pass")
                        self.log.info("第" + id + "步:" + step + "-----pass")
                        pass_count.append(i)
                    else:
                        self.parseExcel.writeCell(i + 2, 10, "fail")
                        self.log.info("第" + id + "步:" + step + "-----fail")
                        fail_count.append(i)
                        self.pa.pageMotion(motion='quit')
                        break
                except:
                    self.parseExcel.writeCell(i + 2, 10, "fail")
                    self.log.info("第" + id + "步:" + step + "-----exception")
                    exception.append(i)
                    self.pa.pageMotion(motion='quit')
                    break

                self.rm.runMethod(caseCount=caseNum, startTime=startTime, casePresent=id)

            elif motion == "click_await":
                self.rm.runMethod(caseCount=caseNum, startTime=startTime, casePresent=id)
                self.pa.pageMotion(motion=motion, locatorExpression=locatorExpression)
                result = self.pa.pageMotion(motion=getText, locatorExpression=locatorExpressionResult)
                try:
                    if expect in result:
                        self.parseExcel.writeCell(i + 2, 10, "pass")
                        self.log.info("第" + id + "步:" + step + "-----pass")
                        pass_count.append(i)
                    else:
                        self.parseExcel.writeCell(i + 2, 10, "fail")
                        self.log.info("第" + id + "步:" + step + "-----fail")
                        fail_count.append(i)
                        self.pa.pageMotion(motion='quit')
                        break
                except:
                    self.parseExcel.writeCell(i + 2, 10, "fail")
                    self.log.info("第" + id + "步:" + step + "-----exception")
                    exception.append(i)
                    self.pa.pageMotion(motion='quit')
                    break

                self.rm.runMethod(caseCount=caseNum, startTime=startTime, casePresent=id)

            elif motion == "quit":
                self.parseExcel.writeCell(i + 2, 10, "pass")
                self.pa.pageMotion(motion=motion)

        excelstartTime, excelid, excelstep, excelmotion, excellocatorExpression, \
        excelhoverLocator, excelvalue, excelexpect, excelgetText, \
        excellocatorExpressionResult, runResult = self.parseExcel.getCaseData()

        # endTime = datetime.datetime.now()
        endTime = time.strftime('%Y-%m-%d %H:%M:%S')

        self.log.info("用例结束时间:" + endTime)
        # sumCase = len(pass_count) + len(fail_count)
        pr = len(pass_count) / caseNum
        # passingRate = '{:.0%}'.format(pr)
        passingRate = "%.2f" % pr
        fr = len(fail_count) / caseNum
        # failureRate = '{:.0%}'.format(fr)
        failureRate = "%.2f" % fr
        print(failureRate)
        self.log.info("用例通过条数" + str(len(pass_count)))
        self.log.info("用例失败条数:" + str(len(fail_count)))
        self.log.info("xpath定位失败:" + str(len(exception)))
        message = None
        if len(pass_count) == caseNum:
            message = 1  # 1代表成功

        if len(fail_count) > 0:
            message = 2  # 2代表失败

        if len(exception) > 0:
            message = 3  # 3代表未找到定位元素

        # print(message)
        return startTime, endTime, caseNum, len(pass_count), len(fail_count), passingRate, failureRate, \
               excel_id, excel_step, excel_motion, excel_locatorExpression, excel_value, excel_expect, excel_getText, \
               excel_locatorExpressionResult, runResult, message