Esempio n. 1
0
class TestChargeListPage(unittest.TestCase):
    """交易流水模块-充值"""
    @classmethod
    def setUpClass(cls):
        cls.driver = select_Browser_WebDriver()
        cls.url = join_url('/charge/listcharge')

    @unittest.skipIf(getRunFlag('CHARGELIST', 'testCase1') == 'N', '验证执行配置')
    @ddt.data(*chargeData)
    @replayCaseFail(num=1)
    def testCase1(self, data):
        """充值撤销"""
        print('功能:{0}'.format(data['desc']))
        """前置操作"""
        #实例化ChargeListPage类
        self.charge = ChargeListPage(self.url, self.driver, data['pageTitle'])
        # 打开目标页
        self.charge.open
        """页面操作"""
        #单击 撤值撤销链接
        self.charge.clickUndoLinkText

        #单击 确定按钮
        self.charge.clickConfirmBtn
        """断言操作"""
        #断言成功
        txt = self.charge.getChargeStatusTxt
        print('充值撤销状态:{0}'.format(txt))
        self.assertEqual(txt, '撤销充值', msg='撤销充值记录列表中,不存在状态为<撤销充值>的记录')

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()
Esempio n. 2
0
class TestNumberCardPage(unittest.TestCase):
    """次卡消费模块"""
    @classmethod
    def setUpClass(cls):
        cls.driver = select_Browser_WebDriver()
        cls.url = 'http://pos.beta.acewill.net/numbercard'

    @unittest.skipIf(getRunFlag('NUMBERCARD', 'testCase1') == 'N', '验证执行配置')
    @ddt.data(*numberCardData)
    @replayCaseFail(num=3)
    def testCase1(self, data):
        """次卡消费"""
        print '功能:{0}'.format(data['desc'])

        #实例化NumberCardPage类
        self.number = NumberCardPage(self.url, self.driver, data['title'])
        # 打开目标地址
        self.number.open
        """输入手机号或卡号进入次卡消费界面"""
        #输入手机号或卡号
        self.number.inputPhoneOrCard(data['phoneOrCard'])
        #单击 确定按钮
        self.number.clickNumberCardButton
        """次卡消费界面,操作"""
        #输入 次卡使用次数
        self.number.inputNumberUse(data['useNum'])
        #单击确定按钮,提交
        self.number.clickSubmitButton
        """检查断言"""
        self.assertTrue(self.number.assertSuccess,
                        msg='检查消费后,返回到,输入手机号界面')  #检查消费后,返回到,输入手机号界面

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()
Esempio n. 3
0
class TestConsumeListPage(unittest.TestCase):
    """交易流水-消费"""
    @classmethod
    def setUpClass(cls):
        cls.driver = select_Browser_WebDriver()
        cls.url = 'http://pos.beta.acewill.net/consume/list'

    @unittest.skipIf(getRunFlag('CONSUMELIST', 'testCase1') == 'N', '验证执行配置')
    @ddt.data(*consumeData)
    @replayCaseFail(num=3)
    def testCase1(self, data):
        """交易流水-撤销消费"""
        print '功能:{0}'.format(data['desc'])

        #实例化ConsumeListPage类
        self.consumeList = ConsumeListPage(self.url, self.driver,
                                           data['consumeListTitle'])
        # 打开目标地址
        self.consumeList.open

        #单击撤销消费 链接
        self.consumeList.clickUndoLinkText
        #单击 确定按钮
        self.consumeList.clickConfirmBtn
        """断言"""
        self.assertTrue(self.consumeList.assertCancelSuccess)  #断言,弹出撤销成功div框

        self.assertEqual(self.consumeList.getContentText,
                         u'撤销消费')  #撤销消费,列表中增加一条撤销记录

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()
Esempio n. 4
0
class TestBjPrintPage(unittest.TestCase):
    """班结小票打印"""
    @classmethod
    def setUpClass(cls):
        cls.driver = select_Browser_WebDriver()
        cls.url = join_url('/consume/list')

    @unittest.skipIf(getRunFlag('PRINT', 'testCase1') == 'N', '验证执行配置')
    @ddt.data(*printData)
    @replayCaseFail(num=3)
    def testCase1(self, data):
        """班结小结打印"""
        print('功能:{0}'.format(data['desc']))

        #实例化BjPrintPage类
        self.bjPrint = BjPrintPage(self.url, self.driver, '消费流水 - 微生活POS系统')
        # 打开交易流水页面
        self.bjPrint.open
        #点击 班结小票链接
        self.bjPrint.clickPrintLinkText
        #点击 打印按钮
        self.bjPrint.clickPrintBtn
        time.sleep(5)  #等待3秒
        self.bjPrint.switch_window  #切换到新窗口
        """断言"""
        self.assertTrue(self.bjPrint.assertPrint)  #断言弹出最后打印界面,打印按钮存在

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()
Esempio n. 5
0
class TestCreditListPage(unittest.TestCase):
    """交易流水模块-积分换礼"""
    @classmethod
    def setUpClass(cls):
        cls.driver = select_Browser_WebDriver()
        cls.url = 'http://pos.beta.acewill.net/credit/list'

    @unittest.skipIf(getRunFlag('CREDITLIST', 'testCase1') == 'N', '验证执行配置')
    @ddt.data(*creditData)
    @replayCaseFail(num=3)
    def testCase1(self, data):
        """交易流水-撤销积分"""
        print '功能:{0}'.format(data['desc'])

        #实例化CreditListPage类
        self.creditList = CreditListPage(self.url, self.driver,
                                         data['CreditListTitle'])
        # 打开目标地址
        self.creditList.open
        """撤销积分页操作"""
        #单击 撤销积分
        self.creditList.clickUndoLinkText
        #单击确定 按钮
        self.creditList.clickUndoBtn
        """断言"""
        self.assertEqual(self.creditList.assertUndoSuccess,
                         '撤销积分换礼')  #撤销积分后,在列表显示一条,状态为撤销积分换礼记录

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()
Esempio n. 6
0
class TestNumberCardListPage(unittest.TestCase):
    """交易流水模块"""
    @classmethod
    def setUpClass(cls):
        cls.driver = select_Browser_WebDriver()
        cls.url = join_url('/numbercard/list')

    @unittest.skipIf(
        getRunFlag('NUMBERCARDLIST', 'testCase1') == 'N', '验证执行配置')
    @ddt.data(*listCardData)
    @replayCaseFail(num=3)
    def testCase1(self, data):
        """次卡消费撤销"""
        print('功能:{0}'.format(data['desc']))

        #实例化NumberCardListPage类
        self.list = NumberCardListPage(self.url, self.driver, data['title'])
        # 打开目标地址
        self.list.open
        """撤销操作"""
        #单击撤销消费
        self.list.clickUndoLink
        #单击确定按钮
        self.list.clickConfirmButton
        """检查断言"""
        self.assertTrue(self.list.assertSuccess)  #断言,撤销后,状态是否存在
        self.assertEqual(self.list.getUndoStatus, '撤销消费')  #断言状态是否为 撤销消费

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()
class TestCardIndexPage(unittest.TestCase):
    """储值售卖模块"""
    @classmethod
    def setUpClass(cls):
        cls.driver = select_Browser_WebDriver()
        cls.url = getBaseUrl('POS_URL') + '/card/index'
        cls.excel = Excel(
            os.path.join(gl.dataPath, 'posChargeCard.xls').decode('utf-8'))

    @unittest.skipIf(getRunFlag('CARDINDEX', 'testCase1') == 'N', '验证执行配置')
    @ddt.data(*cardShopData)
    @replayCaseFail(num=3)
    def testCase1(self, data):
        """储值卡售卖-实体储值卡售卖"""
        print '功能:{0}'.format(data['desc'])
        """前置初始操作"""
        #实例化CardIndexPage类
        self.card = CardIndexPage(self.url, self.driver, data['pagetitle'])
        # 打开浏览器并转到指定url
        self.card.open

        #从excel获取一条标记为N的卡号
        cardNo = float(self.excel.getCardNo(
            cell_col=0, cell_valueType=1)).__int__().__str__()
        """储值售卖页面"""
        #选择储值卡
        self.card.selectCardSelect(data['CardType'])

        #单击储值卡类型  实体卡储值
        self.card.clickCardType

        #输入 储值卡号
        self.card.inputCardNo(cardNo)

        #单击 确定按钮
        self.card.clickConfirmBtn

        #单击 再次确定按钮
        self.card.clickSubmitBtn
        """后置断言操作"""
        self.card.wait(2000)

        #点击储值卡类型为  实体卡储值
        self.card.clickCardType
        #输入 储值卡号
        self.card.inputCardNo(cardNo)

        self.assertEqual(self.card.assertChareSuccess,
                         data['assert'])  #断言已售的卡不能再售,来判断售卡成功

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()
Esempio n. 8
0
class TestCouponsaleIndexPage(unittest.TestCase):
    """商品售卖模块"""
    @classmethod
    def setUpClass(cls):
        cls.driver = select_Browser_WebDriver()
        cls.url = getBaseUrl('POS_URL') +'/couponsale/index'



    @unittest.skipIf(getRunFlag('COUPONSALEINDEX',('testCase1'))=='N','验证执行配置')
    @ddt.data(*shopData)
    @replayCaseFail(num=3)
    def testCase1(self,data):
        """商品售卖-券包+次卡+直接购买"""
        print('功能:{0}'.format(data['desc']))

        #实例化CouponsaleIndexPage类
        self.shop = CouponsaleIndexPage(self.url,self.driver,data['title'])
        # 打开目标url
        self.shop.open

        """输入会员卡号,或手机号页"""
        #输入手机号或卡号
        self.shop.inputPhoneOrCard(data['phoneOrCard'])
        #点击 确定按钮
        self.shop.clickConfirmBtn

        """商品售卖页"""
        #批量 勾选商品复选框
        self.shop.clickiterSelect
        #单击 确定按钮,提交售卖
        self.shop.clickShopConfirmBtn

        #输入交易密码
        self.shop.inputPaypwd(data['password'])
        #交易密码对话框确定
        self.shop.clickConfirmPaypwd

        """后置断言操作"""
        self.assertTrue(self.shop.assertShopSuccess)#断言售卖成功后,返回到输入卡号或手机号页面



    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()
Esempio n. 9
0
class TestCreditPage(unittest.TestCase):
    """积分兑换模块"""
    @classmethod
    def setUpClass(cls):
        """初始化webdriver"""
        cls.driver = select_Browser_WebDriver()
        cls.url = 'http://pos.beta.acewill.net/credit'

    def creditFunc(self, data):
        '''输入卡号或手号并点击确定'''
        self.credit = CreditPage(self.url, self.driver, u"积分换礼 - 微生活POS系统")
        # 增加cookies信息,并打开积分换礼页
        self.credit.open

        #输入手机号或卡号
        self.credit.inputPhoneorCard(data['charge_number'])
        #单击 确定按钮
        self.credit.clickPhoneConfirmBtn

    @unittest.skipIf(getRunFlag('CREDIT', 'testCase1') == 'N', '验证执行配置')
    @ddt.data(*creditData)
    @replayCaseFail(num=3)
    def testCase1(self, data):
        '''积分换礼'''
        print '{0}'.format(data['desc'])

        # 输入手机号,或卡号,进入积分换礼页面
        self.creditFunc(data)
        #积分规则
        self.credit.clickIterCheckBox
        #积分数量
        self.credit.inputCreditNumber(data['ExchangeNumber'])
        #积分详情
        self.credit.inputCreditDetail(data['ExchangeDetail'])
        #确定按钮 提交
        self.credit.clickConfirmBtn

        # 成功兑换断言
        self.credit.assertPaySuccess

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()
Esempio n. 10
0
class TestConsumeCouponListPage(unittest.TestCase):
    """交易流水模块"""
    @classmethod
    def setUpClass(cls):
        cls.driver = select_Browser_WebDriver()
        cls.url = 'http://pos.beta.acewill.net/consume/couponlist'



    @unittest.skipIf(getRunFlag('CONSUMECOUPONLIST',('testCase1'))=='N','验证执行配置')
    @ddt.data(*shopCancelData)
    @replayCaseFail(num=3)
    def testCase1(self,data):
        """交易流水-撤销商品售卖"""
        print '功能:{0}'.format(data['desc'])

        #实例化ConsumeCouponListPage类
        self.undo = ConsumeCouponListPage(self.url,self.driver,data['title'])
        # 打开目标url
        self.undo.open

        """商品售卖,撤销"""
        #单击 撤销商口售卖
        self.undo.clickUndoLinkText
        #单击 确定按钮
        self.undo.clickUndoConfirmBtn

        """后置断言操作"""
        self.assertTrue(self.undo.assertSuccess)
        self.assertEqual(self.undo.getContentText,'撤销商品售卖')



    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()
Esempio n. 11
0
class TestChargePage(unittest.TestCase):
    '''储值模块'''
    @classmethod
    def setUpClass(cls):

        cls.driver = select_Browser_WebDriver()
        cls.url = join_url('/charge/index')

    def inChargePage(self, data):
        """输入卡号进入储值页面"""
        #实例化ChargePage类
        self.charge = ChargePage(self.url, self.driver, data['page_title'])
        # 打开目标url
        self.charge.open
        """输入卡号,确定,进入储值页面"""
        #输入 卡号
        self.charge.inputPhoneOrCardNo((data['charge_number']))
        #单击 确定
        self.charge.clickConfirmBtn
        """断言操作"""
        #储值余额
        self.assertTrue(self.charge.assertfindRMB)

        #储值前的 储值余额
        self.usChargeSaving = self.charge.getAfterRMB

        print('当前余额:{0}'.format(self.usChargeSaving))

    def chargeFunc(self, data):
        """储值功能操作"""
        print('功能:{0}'.format(data['desc']))
        """输入卡号或手机号,确定,进入储值页面"""
        self.inChargePage(data)
        """储值操作"""
        #选择储值奖励规则
        self.charge.clickChargeGZ
        #单击 自定义规则
        self.charge.clickCustomGZ
        #输入 自定义金额
        self.charge.inputCustomPresent(data['present'])
        #点击 自定义金额对话框  确定按钮
        self.charge.clickCustomConfirmBtn
        #点击 现金支付方式
        self.charge.clickPayType(data['pay_index'])
        #输入 备注
        self.charge.inputRemark(data['note'])
        #单击 确定,进入储值确认对话框
        self.charge.clickSubmitBtn
        #单击 确认,并储值
        self.charge.clickLastConfirmBtn
        """断言操作"""
        self.charge.assertChargeSuccess
        """后置操作"""
        #单击 立即消费按钮
        self.charge.clickConsumeBtn
        """断言储值余额,是否正确"""
        #获取 储值后余额
        self.usDualSaving = self.charge.getLastRMB

        print('储值后当前余额:{0}'.format(self.usDualSaving))
        self.assertTrue(
            float(data['present']) + float(self.usChargeSaving) +
            1 == float(self.usDualSaving))

    @unittest.skipIf(getRunFlag('CHARGE', 'testCase1') == 'N', '验证执行配置')
    @ddt.data(*chargeData)
    @replayCaseFail(num=3)
    def testCase1(self, data):
        """正常储值功能"""
        #调用储值功能函数
        self.chargeFunc(data)

    @unittest.skipIf(getRunFlag('CHARGE', 'testCase2') == 'N', '验证执行配置')
    @ddt.data(*FillData)
    @replayCaseFail(num=3)  #case执行失败后,重新执行num次
    def testCase2(self, data):
        """储值并补开发票"""

        # 调用储值功能函数
        self.chargeFunc(data)
        """补开发票"""
        #单击 补开发票按钮
        self.charge.clickFillReceipt
        #获取 未开票金额
        notFillPresent = self.charge.getNotFillPresent(data['txtName'])
        #输入 开票金额
        self.charge.inputFillPresent(str(notFillPresent))
        #单击 确定 开发票
        self.charge.clickFillConfirmBtn
        """断言补开票成功"""
        #单击 补开发票按钮
        self.charge.clickFillReceipt
        #获取 未开票金额
        notFillPresent = float(self.charge.getNotFillPresent(data['txtName']))

        print('补开发票金额剩余:{0}'.format(notFillPresent))
        #断言补开发票后,第一行补开发票为零
        self.assertEqual(notFillPresent, float('0.00'), msg='开票余额,不为零.')

    @unittest.skipIf(getRunFlag('CHARGE', 'testCase3') == 'N', '验证执行配置')
    @ddt.data(*raise_data)
    @replayCaseFail(num=3)
    def testCase3(self, data):
        """储值功能-自定义金额与储值金额相同"""
        #调用储值功能函数
        """储值功能操作"""
        print('功能:{0}'.format(data['desc']))
        """输入卡号或手机号,确定,进入储值页面"""
        self.inChargePage(data)
        """储值操作"""
        #选择储值奖励规则
        self.charge.clickChargeGZ
        #单击 自定义规则
        self.charge.clickCustomGZ
        #输入 自定义金额
        self.charge.inputCustomPresent(data['present'])
        #点击 自定义金额对话框  确定按钮
        self.charge.clickCustomConfirmBtn

        #
        #断言
        self.assertTrue(self.charge.assert_custom_error())

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()
Esempio n. 12
0
class TestConsumePage(unittest.TestCase):
    '''消费模块'''
    @classmethod
    def setUpClass(cls):
        cls.driver = select_Browser_WebDriver()
        cls.url = 'http://pos.beta.acewill.net/consume'
        cls.excel = Excel(
            os.path.join(gl.dataPath, 'posCardData.xls').decode('utf-8'))
        cls.toexcel = Excel(
            os.path.join(gl.dataPath,
                         'posNotNameCardData.xls').decode('utf-8'))

    def consume_func(self, data):
        '''消费->输入卡号或手机号->确定'''
        self.consume = ConsumePage(self.url, self.driver, '消费 - 微生活POS系统')

        # 打开浏览器,并转到消费页
        self.consume.open
        # 选择会员卡号/手机号
        self.consume.selectTab
        # 输入卡号或手机号
        self.consume.inputPhoneOrCardNo(data['phoneOrCard'])
        # 点击确定按钮
        self.consume.clickConfirmBtn

    """消费模块,动态选择券"""

    def iterCoupon(self):
        '''动态选择券'''
        couponDiv = self.driver.find_elements_by_class_name(
            self.consume.tcCouponDiv_loc)  #现金券
        for e in couponDiv:
            divEle = e.find_element_by_xpath(self.consume.tcTicket_loc)
            if divEle.is_displayed():
                divEle.click()  # 单击
                useCount = self.driver.find_element_by_name(
                    self.consume.tcUseCount)
                if useCount.is_displayed():
                    useCount.send_keys(1)
                break

    def getCode(self, data):
        """
        从Boss获取验证码
        :param data: 参数化数据
        :return: 验证码
        """
        """参数变量url,cookies,time"""
        yamldict = getYamlfield(gl.configFile)
        cookies = yamldict['CONFIG']['Cookies']['BossLoginCookies']
        #timeStr = time.strftime('%Y-%m-%d')
        url = 'http://boss.beta.acewill.net/sms/search?phone={0}&begin={1}&end={2}'.format(
            data['PhoneNo'], gl.curDate, gl.curDate)
        """设置浏览器,选项,隐藏获窗口运行"""
        option = webdriver.ChromeOptions()
        option.add_argument('disable-infobars')  #不显示"Chrome正在受自动测试软件控制"
        option.add_argument('headless')  #后台运行,不显示界面
        """启动浏览器,增加cookies"""
        driver1 = webdriver.Chrome(chrome_options=option)
        driver1.maximize_window()
        driver1.get(url)
        driver1.implicitly_wait(30)
        driver1.add_cookie(cookies)
        driver1.get(url)
        """获取验证码,并返回验证码"""
        txtcode = driver1.find_element_by_xpath(
            self.consume.boss_code_xpath).text
        code = json.loads(txtcode)['template']['yanzhengma']
        driver1.quit()
        return code

    @unittest.skipIf(getRunFlag('CONSUME', ('testCase1')) == 'N', '验证执行配置')
    @ddt.data(*cardData)
    @replayCaseFail(num=3)
    def testCase1(self, data):
        '''实体卡开卡'''
        print '功能:{0}'.format(data['desc'])

        # 获取卡号
        cardNo = {'phoneOrCard': str(self.excel.getCardNo())}
        print u"实体卡,卡号为:{0}".format(cardNo['phoneOrCard'])

        #进入消费页面
        self.consume_func(cardNo)
        # 实体卡开卡
        self.consume.clickOpenCardIco
        # 输入手机号
        self.consume.inputOpenCardPhone(data['PhoneNo'])
        # 姓名
        self.consume.inputOpenCardName(data['username'])
        # 性别
        self.consume.clickOpenCardSex
        # 生日
        self.consume.inputOpenCardBirthday(data['birthday'])
        # 交易密码
        self.consume.inputOpenPwd(data['password'])
        # 确定
        self.consume.clickOpenConfirmBtn

        #断言
        self.assertTrue(self.consume.assertCardSuccess)

    @unittest.skipIf(getRunFlag('CONSUME', ('testCase6')) == 'N', '验证执行配置')
    @ddt.data(*cardofData)
    @replayCaseFail(num=3)
    def testCase6(self, data):
        """不记名卡开卡"""
        print '功能:{0}'.format(data['desc'])

        # 获取磁道号
        cardNo = {'phoneOrCard': str(self.toexcel.getCardNo(cell_col=0))}
        #进入消费界面
        self.consume_func(cardNo)
        """开卡页面"""
        #单击不记名卡,确定
        self.consume.clickCardOfOpenBtn
        """断言操作"""
        self.assertTrue(self.consume.assertOpenCardSuccess)

    @unittest.skipIf(getRunFlag('CONSUME', 'testCase5') == 'N', '验证执行配置')
    @ddt.data(*cardBindData)
    @replayCaseFail(num=3)
    def testCase5(self, data):
        """实体卡绑卡"""
        print '功能:{0}'.format(data['desc'])

        # 获取卡号-字典类型
        cardNo = {'phoneOrCard': str(self.excel.getCardNo())}

        #进入绑卡绑卡图标选择页面
        self.consume_func(cardNo)

        #单击绑卡图标
        self.consume.clickBindCardIco
        #输入卡号
        self.consume.inputBindCardNo(data['PhoneNo'])
        #单击 确定
        self.consume.clickBindConfirmBtn
        #获取验证码
        code = self.getCode(data)  #获取验证码
        #输出验证码
        print '验证码:{0}'.format(code)
        #输入验证码
        self.consume.inputVerCode(code)
        #单击 验证码框 确定
        self.consume.clickVerCodeConfirmBtn
        """断言"""
        self.assertTrue(self.consume.assertCardSuccess, msg='实体卡绑定失败')

    @unittest.skipIf(getRunFlag('CONSUME', 'testCase2') == 'N', '验证执行配置')
    @ddt.data(*consumeData)
    @replayCaseFail(num=3)
    def testCase2(self, data):
        '''积分消费'''
        print u'功能:{0},消费{1}元,抵扣{2}积分.'.format(data['desc'],
                                               data['tcTotalFee'],
                                               data['credit'])

        # 进入消费页
        self.consume_func(data)

        #输入金额
        self.consume.inputTotalFee(data['tcTotalFee'])
        #清除储值支付金额
        self.consume.clearInputStoredPay
        #输入积分
        self.consume.inputUseCredit(data['credit'])
        #输入备注
        self.consume.inputRemark(data['desc'])
        #单击确认消费按钮
        self.consume.clickConsumeSubmitBtn
        #单击再次确认按钮
        self.consume.clickConsumeConfirmBtn
        '''输入密码点击确认'''
        #输入交易密码
        self.consume.inputPaypwd(data['dualCode'])
        #单击交易密码 确定按钮
        self.consume.clickConfirmPaypwd

        self.consume.assertPaySuccess  #支付成功断言

    @unittest.skipIf(getRunFlag('CONSUME', 'testCase3') == 'N', '验证执行配置')
    @ddt.data(*chargeDealData)
    @replayCaseFail(num=3)
    def testCase3(self, data):
        '''储值销费'''
        print u'功能:{0},消费金额{1},储值抵扣{2}元.'.format(data['desc'],
                                                 data['tcTotalFee'],
                                                 data['tcTotalFee'])
        # 进入消费页
        self.consume_func(data)
        # 输入金额
        self.consume.inputTotalFee(data['tcTotalFee'])
        # 输入备注
        self.consume.inputRemark(data['desc'])
        # 确认消费按钮
        self.consume.clickConsumeSubmitBtn
        # 最终确认消费
        self.consume.clickConsumeConfirmBtn
        '''输入密码点击确认'''
        #输入交易密码
        self.consume.inputPaypwd(data['dualCode'])
        #单击交易密码 确定按钮
        self.consume.clickConfirmPaypwd

        self.consume.assertPaySuccess  #支付成功断言

    @unittest.skipIf(getRunFlag('CONSUME', 'testCase4') == 'N', '验证执行配置')
    @ddt.data(*custCouponData)
    @replayCaseFail(num=3)
    def testCase4(self, data):
        '''券消费'''
        print u'功能:{0},消费{1}积分.'.format(data['desc'], data['tcTotalFee'])
        # 进入消费页
        self.consume_func(data)
        # 输入金额
        self.consume.inputTotalFee(data['tcTotalFee'])
        # 选择现金券
        self.iterCoupon()
        # 输入备注
        self.consume.inputRemark(data['desc'])
        # 确认消费按钮
        self.consume.clickConsumeSubmitBtn
        # 最终确认消费
        self.consume.clickConsumeConfirmBtn
        '''输入密码点击确认'''
        #输入交易密码
        self.consume.inputPaypwd(data['dualCode'])
        #单击交易密码 确定按钮
        self.consume.clickConfirmPaypwd

        self.consume.assertPaySuccess  #支付成功断言

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()
Esempio n. 13
0
class TestCardIndexPage(unittest.TestCase):
    """储值售卖模块"""
    @classmethod
    def setUpClass(cls):
        cls.driver = select_Browser_WebDriver()
        cls.url = join_url('/card/index')
        cls.excel = Excel(
            os.path.join(
                gl.dataPath, 'posChargeCard.xls'
            )
        )
        #从excel获取一条标记为N的卡号
        cls.cardNo = float(
            cls.excel.getCardNo(cell_col=0,cell_valueType=1)
        ).__int__().__str__()

    @unittest.skipIf(
        getRunFlag('CARDINDEX', 'testCase1') == 'N',
        '验证执行配置'
    )
    @ddt.data(*cardShopData)
    @replayCaseFail(num=1)
    def testCase1(self,data):
        """储值卡售卖-实体储值卡售卖"""
        print('功能:{0}'.format(data['desc']))

        """前置初始操作"""
        #实例化CardIndexPage类
        self.card = CardIndexPage(
            self.url,self.driver,
            data['pagetitle']
        )
        # 打开浏览器并转到指定url
        self.card.open

        """储值售卖页面"""
        #选择储值卡
        self.card.selectCardSelect(data['CardType'])
        #单击储值卡类型  实体卡储值 卡类型0.电子卡;1实体储值卡
        self.card.click_card_type(data['card_index'])
        #输入 储值卡号
        self.card.inputCardNo(self.cardNo, data['cardno_flag'])
        #输入电子卡数量
        self.card.input_card_num(data['card_num'])
        #输入微信号
        self.card.input_wechat_text(data['wechat_no'])
        #选择支付类型;0现金;1银行卡;依此类推
        self.card.click_pay_type(data['pay_type'])
        #单击 确定按钮
        self.card.clickConfirmBtn
        #单击 再次确定按钮
        self.card.clickSubmitBtn

        """后置断言操作"""
        self.card.imp_wait(option=data['wait_off/on'], ms=data['wait_ms'])
        #点击储值卡类型为  实体卡储值
        self.card.click_card_type(data['h_card_index'])
        #输入 储值卡号
        self.card.inputCardNo(self.cardNo, data['cardno_flag'])

        #断言已售的卡不能再售,来判断售卡成功
        self.assertTrue(eval(data['assert']))
        #加个等待时间,增加两个用例之间截图准确性
        self.card.wait(3000)

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()