Exemplo n.º 1
0
    def android_driver(self):
        '''Android driver'''

        # 从desired_caps.yaml读取driver配置数据
        stream = open(DESIRED_CAPS_YAML_PATH, 'r')
        data = yaml.load(stream, Loader=yaml.FullLoader)

        desired_caps = {}
        desired_caps['platformName'] = data['platformName']
        desired_caps['platformVersion'] = data['platformVersion']
        desired_caps['deviceName'] = data['deviceName']
        desired_caps['udid'] = data['udid']
        desired_caps['appPackage'] = data['appPackage']
        desired_caps['appActivity'] = data['appActivity']
        desired_caps['noReset'] = data['noReset']
        desired_caps['unicodeKeyBoard'] = True
        desired_caps['resetKeyboard'] = True
        desired_caps['automationName'] = data['automationName']

        # 设置收到下一条命令的超时时间,超时appium会自动关闭session ,默认60秒
        desired_caps['newCommondTimeout'] = data['newCommondTimeout']

        try:
            driver = webdriver.Remote('http://' + str(data['ip']) + ':' + str(data['port']) + '/wd/hub', desired_caps)
            driver.implicitly_wait(8)
            log.info("驱动app打开成功...")
            return driver
        except Exception as e:
            log.error("驱动app打开失败:{}".format(e))
Exemplo n.º 2
0
    def test_02_modify_pwd(self):
        '''验证修改后的密码能否登录'''
        log.info("验证修改后的密码能否登录")
        tel = get_yaml_value(TEST_ACCOUNT_PATH, 'account_1')
        pwd = get_yaml_value(TEST_ACCOUNT_PATH, 'new_pwd_s')
        lp = LoginPage(self.driver)
        lp.login_opera_again(tel, pwd)
        log.info("登录操作")
        time.sleep(2)
        # 断言是否登录成功
        result = False
        if lp.new_is_exist_element("立即更新"):
            result = True
            # 有则点击取消
            UpdatePopup(self.driver).cancel_opera()
        elif lp.new_is_exist_element("首页"):
            result = True
        self.assertTrue(result)
        time.sleep(2)

        # 为不影响后面的测试,需将密码还原成旧密码
        ms = MySet(self.driver)
        ms.enter_to_my()
        ms.enter_to_set()
        # 修改密码操作
        old_pwd = get_yaml_value(TEST_ACCOUNT_PATH, 'new_pwd_s')
        new_pwd = get_yaml_value(TEST_ACCOUNT_PATH, 'old_pwd_s')
        ms.change_pwd(old_pwd, new_pwd)
        time.sleep(2)
Exemplo n.º 3
0
 def test_02_login_normal(self):
     '''正确用户名,正确密码登录'''
     log.info("验证正确用户名、正确密码登录")
     tel = get_yaml_value(TEST_ACCOUNT_PATH, 'account_1')
     pwd = get_yaml_value(TEST_ACCOUNT_PATH, 'pwd_1_right')
     lp = LoginPage(self.driver)
     lp.login_opera(tel, pwd)
     time.sleep(2)
     # 判断是否登录成功
     result = False
     udp = UpdatePopup(self.driver)
     if lp.new_is_exist_element("立即更新"):
         result = True
         udp.cancel_opera()
         # 判断是否存在通知弹窗
         if lp.is_exist_element(udp.cancel_el):
             udp.cancel_opera()
             if lp.new_is_exist_element("我知道了"):
                 Iknow(self.driver).click_iknow_btn()
     elif lp.is_exist_element(udp.cancel_el):
         udp.cancel_opera()
         if lp.new_is_exist_element("我知道了"):
             Iknow(self.driver).click_iknow_btn()
     elif lp.new_is_exist_element("我知道了"):
         result = True
         Iknow(self.driver).click_iknow_btn()
     else:
         if lp.new_is_exist_element("首页"):
             result = True
     self.assertTrue(result)
     time.sleep(1)
Exemplo n.º 4
0
    def get_apk_info(self):
        '''获取apk包的appPackage、启动类appActivity'''
        mac_aapt_path = '/Users/mac/Downloads/android-sdk-macosx/build-tools/29.0.3/'
        aapt_command_base = 'aapt dump badging '
        app_path = self.get_apk_path()

        try:
            # mac获取方法
            # p = subprocess.Popen(mac_aapt_path+aapt_command_base+app_path, stdout=subprocess.PIPE,
            #                              stderr=subprocess.PIPE,
            #                              stdin=subprocess.PIPE,
            #                              shell=True)
            # windows获取方法
            p = subprocess.Popen(aapt_command_base + app_path,
                                 stdout=subprocess.PIPE,
                                 stderr=subprocess.PIPE,
                                 stdin=subprocess.PIPE,
                                 shell=True)
            (output, err) = p.communicate()
            t = output.decode()
            # print(t)
            match_appPackage = re.compile("package: name='(.*?)'").search(t)
            match_apkActivity = re.compile(
                "launchable-activity: name='(.*?)'").search(t)
            appPackage = match_appPackage.groups()[0]
            appActivity = match_apkActivity.groups()[0]
            # print(appPackage)
            # print(appActivity)
            log.info("获取被测apk包的appPackage、appActivity成功...")
            return appPackage, appActivity
        except Exception as e:
            log.error("获取被测apk包的appPackage、appActivity失败:{}".format(e))
Exemplo n.º 5
0
 def start_appium(self):
     '''启动appium服务'''
     try:
         os.system('start appium -a 127.0.0.1 -p 4723')
         time.sleep(5)
         log.info("启动appium服务...")
     except Exception as e:
         log.error("appium启动失败:{}".format(e))
Exemplo n.º 6
0
 def quit_appium(self):
     '''停止appium服务'''
     process = os.popen('netstat -aon |findstr 4723').read()
     print(process)
     pid = process.replace(' ', '').split('LISTENING')[1]
     m = os.popen('taskkill -f -pid %s' % pid)
     # print(m.read())
     log.info("appium服务已停止...")
 def test_02_edit_person(self):
     '''验证编辑人员'''
     log.info("验证编辑人员")
     pmg = PersonnelManagement(self.driver)
     # 编辑人员操作
     pmg.edit_person_opera()
     # 断言是否编辑成功
     r_1 = pmg.is_toast_exist(pmg.edit_success_toast)
     self.assertTrue(r_1)
Exemplo n.º 8
0
 def test_03_senior_set(self):
     '''验证设备详情页-高级设置'''
     log.info("验证设备详情页-高级设置")
     # 高级设置操作
     dm = DeviceManagement(self.driver)
     dm.senior_set_opera()
     # 断言是否设置成功
     toast_text = dm.get_toast_text()
     self.assertEqual(toast_text, dm.set_success_toast)
 def test_03_delete_person(self):
     '''验证删除人员'''
     log.info("验证删除人员")
     pmg = PersonnelManagement(self.driver)
     # 删除操作
     pmg.delete_person_opera()
     # 断言是否删除成功
     r_1 = pmg.is_toast_exist(pmg.delete_success_toast)
     self.assertTrue(r_1)
 def test_02_batch_start_devices(self):
     '''验证批量启动设备'''
     log.info("验证批量启动设备")
     dm = DeviceManagement(self.driver)
     # 批量启动操作
     dm.batch_start_opera()
     # 断言是否操作成功
     toast_text = dm.get_toast_text()
     self.assertEqual(toast_text, dm.batch_start_success_toast)
 def test_03_member_management(self):
     '''验证会员管理-回收通用小票'''
     log.info("验证会员管理-回收通用小票")
     # 通用小票管理页-回收小票操作
     mm = ManageMarketing(self.driver)
     mm.member_manage_recovery_coin_opera()
     # 断言回收小票是否成功
     r_1 = mm.is_toast_exist(mm.recovery_success_toast)
     self.assertTrue(r_1)
Exemplo n.º 12
0
 def install_app(self):
     '''安装App基本方法'''
     try:
         log.info("正在安装应用{},请稍后...".format(self.appName))
         result = os.popen(self.install_command).read()
         if "Success" in result:
             log.info("{}应用安装成功...".format(self.appName))
     except Exception as e:
         log.error("应用安装失败:{}".format(e))
Exemplo n.º 13
0
 def uninstall_app(self):
     '''卸载App基本方法'''
     try:
         log.info("开始卸载应用{}...".format(self.appName))
         result = os.popen(self.uninstall_command).read()
         if "Success" in result:
             log.info("应用卸载成功...")
     except Exception as e:
         log.error("应用卸载失败:{}".format(e))
Exemplo n.º 14
0
 def test_02_search_edit_device(self):
     '''验证搜索设备、编辑设备'''
     log.info("验证搜索设备、编辑设备")
     # 搜索、编辑设备操作
     dm = DeviceManagement(self.driver)
     dm.search_edit_device_opera()
     # 断言是否编辑成功
     toast_text = dm.get_toast_text()
     self.assertEqual(toast_text, dm.edit_success_toast)
Exemplo n.º 15
0
 def test_03_delete_bathroom(self):
     '''验证删除浴室'''
     log.info("验证删除浴室")
     bm = BathroomManagement(self.driver)
     # 删除浴室操作
     bm.delete_bathroom_opera()
     # 断言是否编辑成功
     result = bm.is_exist_element(bm.edit_bathroom_name)
     self.assertFalse(result)
Exemplo n.º 16
0
 def get_deviceName(self):
     '''获取连接设备的设备名deviceName'''
     try:
         result = os.popen(self.deviceName_command).read()
         deviceName = result.split('\n')[0]
         # print(deviceName)
         log.info("获取设备名成功...")
         return deviceName
     except Exception as e:
         log.error("获取设备名失败:{}".format(e))
Exemplo n.º 17
0
 def get_platformVersion(self):
     '''获取连接设备的系统版本号platformVersion'''
     try:
         result = os.popen(self.platformVersion_command).read()
         platformVersion = result.split('\n')[0]
         # print(platformVersion)
         log.info("获取设备系统版本号成功...")
         return platformVersion
     except Exception as e:
         log.error("获取系统版本号失败:{}".format(e))
Exemplo n.º 18
0
 def test_02_edit_bathroom(self):
     '''验证编辑浴室'''
     log.info("验证编辑浴室")
     bm = BathroomManagement(self.driver)
     # 编辑浴室操作
     bm.edit_bathroom_opera()
     # 断言是否编辑成功
     toast_text = bm.get_toast_text()
     self.assertEqual(toast_text, bm.edit_success_toast)
     result = bm.is_exist_element(bm.edit_bathroom_name)
     self.assertTrue(result)
Exemplo n.º 19
0
 def test_04_delete_device(self):
     '''验证删除设备'''
     log.info("验证删除设备")
     dm = DeviceManagement(self.driver)
     # 删除操作
     dm.delete_device_opera()
     # 断言是否删除成功
     # result = dm.is_exist_element(dm.device_manage_title)
     # self.assertTrue(result)
     toast_text = dm.get_toast_text()
     self.assertEqual(toast_text, dm.delete_success_toast)
Exemplo n.º 20
0
 def test_03_delete_currency_ticket(self):
     '''验证删除通用小票'''
     log.info("验证删除通用小票")
     # 删除通用小票
     mm = ManageMarketing(self.driver)
     mm.delete_opera()
     # 断言是否删除成功
     r_1 = mm.is_exist_element(mm.currency_ticket_manage_page_title)
     r_2 = mm.is_exist_element(mm.currency_ticket_store_name)
     self.assertTrue(r_1)
     self.assertFalse(r_2)
Exemplo n.º 21
0
 def test_02_add_currency_ticket(self):
     '''验证编辑通用小票'''
     log.info("验证编辑通用小票")
     # 编辑通用小票
     mm = ManageMarketing(self.driver)
     mm.edit_currency_ticket_opera()
     # 断言是否编辑成功
     r_1 = mm.is_exist_element(mm.switch_state_1)
     r_2 = mm.is_exist_element(str(mm.sell_coin))
     self.assertTrue(r_1)
     self.assertTrue(r_2)
Exemplo n.º 22
0
 def test_02_add_currency_ticket(self):
     '''验证编辑限时优惠'''
     log.info("验证编辑限时优惠")
     # 编辑限时优惠
     mm = ManageMarketing(self.driver)
     mm.edit_discount_opera()
     # 断言是否编辑成功
     r_1 = mm.is_toast_exist(mm.edit_success_toast)
     r_2 = mm.is_exist_element(str(mm.edit_discount))
     self.assertTrue(r_1)
     self.assertTrue(r_2)
Exemplo n.º 23
0
 def test_03_delete_currency_ticket(self):
     '''验证删除限时优惠'''
     log.info("验证删除限时优惠")
     # 删除限时优惠
     mm = ManageMarketing(self.driver)
     mm.delete_discount_opera()
     # 断言是否删除成功
     r_1 = mm.is_toast_exist(mm.delete_success_toast)
     r_2 = mm.is_exist_element(mm.belong_store_name)
     self.assertTrue(r_1)
     self.assertFalse(r_2)
Exemplo n.º 24
0
    def test_02_hotline(self):
        '''验证合作热线页面展示'''
        log.info("验证合作热线页面展示")
        # ->我的->合作热线
        mh = MyHelp(self.driver)
        mh.enter_to_my()
        mh.enter_to_hotline()

        # 断言页面是否有"服务热线:"字样
        result = mh.new_is_exist_element("服务热线:")
        self.assertTrue(result)
Exemplo n.º 25
0
 def test_01_login_abnormal(self):
     '''正确用户名,错误密码登录'''
     log.info("验证正确用户名、错误密码登录")
     tel = get_yaml_value(TEST_ACCOUNT_PATH, 'account_1')
     pwd = get_yaml_value(TEST_ACCOUNT_PATH, 'pwd_1_wrong')
     lp = LoginPage(self.driver)
     lp.login_opera(tel, pwd)
     # time.sleep(2)
     result = lp.is_toast_exist("账号或密码错误")
     self.assertTrue(result)
     time.sleep(2)
Exemplo n.º 26
0
 def test_03_delete_shop(self):
     '''验证删除店铺'''
     log.info("验证删除店铺")
     smg = ShopManagement(self.driver)
     # 编辑店铺操作
     smg.delete_shop_opera()
     # 断言是否删除成功
     toast_text = smg.get_toast_text()
     r = smg.is_exist_element(smg.edit_shop_name)
     self.assertEqual(toast_text, smg.delete_success_toast)
     self.assertFalse(r)
Exemplo n.º 27
0
 def test_03_delete_vip(self):
     '''验证删除vip'''
     log.info("验证删除vip")
     # 删除vip
     mm = ManageMarketing(self.driver)
     mm.delete_vip_opera()
     # 断言删除是否成功
     r_1 = mm.is_exist_element(mm.vip_centre_title)
     r_2 = mm.is_exist_element(mm.belong_store_name)
     self.assertTrue(r_1)
     self.assertFalse(r_2)
Exemplo n.º 28
0
 def test_02_edit_vip(self):
     '''验证编辑vip'''
     log.info("验证编辑vip")
     # 编辑vip
     mm = ManageMarketing(self.driver)
     mm.edit_vip_opera()
     # 断言编辑是否成功
     r_1 = mm.is_toast_exist(mm.vip_edit_success_toast)
     r_2 = mm.is_toast_exist(str(mm.modify_limit_time))
     self.assertTrue(r_1)
     self.assertTrue(r_2)
Exemplo n.º 29
0
    def test_report_screen(self):
        '''验证报表页流水筛选功能'''
        log.info("验证报表页流水筛选功能")
        # 进入报表页-流水,进行筛选操作
        rfp = ReportFormPage(self.driver)
        rfp.enter_to_report()
        rfp.report_screen_opera()

        # 断言筛选结果是否正确
        result = rfp.new_is_exist_element(rfp.store_text)
        self.assertTrue(result)
 def test_01_batch_update_devices(self):
     '''验证批量修改设备'''
     log.info("验证批量修改设备")
     # ->全部应用->设备管理
     dm = DeviceManagement(self.driver)
     dm.enter_to_all_applications()
     dm.enter_to_devices_management()
     # 批量修改操作
     dm.batch_update_opera()
     # 断言是否修改成功
     toast_text = dm.get_toast_text()
     self.assertEqual(toast_text, dm.batch_update_success_toast)