Exemple #1
0
 def sendTagBroadcast(self, tagName, tagType):
     '''
     向性能采集apk发送场景广播
     :param tagName:
     :param tagType:
     :return:
     '''
     #广播类型
     broadcastType = "com.boyaa.stf.UIScript"
     cmd_send = "shell am broadcast -a " + broadcastType + " --es tagName " + tagName + " --es tagType " + tagType
     self.platformLog(cmd_send)
     singleGlobalVar.get("luaDriver").adb(cmd_send)
Exemple #2
0
 def getResolution(self):
     '''
     获取分辨率
     :return: 直接返回的是minicap截图需要的分辨率参数 游戏会自动设置横屏,所以width>height
     '''
     if (self.resolution == None):
         screenWidth = singleGlobalVar.get(
             "luaDriver").get_window_size()['width']
         screenHeigth = singleGlobalVar.get(
             "luaDriver").get_window_size()['height']
         self.resolution = str(screenWidth) + "x" + str(
             screenHeigth) + "@" + str(screenWidth) + "x" + str(
                 screenHeigth)
Exemple #3
0
    def taskScreenShot(self, fileName):
        '''
        由于appium截图效率问题,改为stf平台的minicap进行截图,其中-P如下:
        The format of the -P argument is: {RealWidth}x{RealHeight}@{VirtualWidth}x{VirtualHeight}/{Orientation}. The "virtual" size is the size of the desired projection.
        The orientation argument tells minicap what the current orientation of the device is (in degrees),
        可执行minicap命令:
        adb shell LD_LIBRARY_PATH=/data/local/tmp exec /data/local/tmp/minicap -P 720x1280@720x1280/90 -s >/sdcard/minicap_1504612944860.jpg
        :param page:  元素所在page页
        :param fileName: 截图保存的文件名
        :return:
        '''
        driver = singleGlobalVar.get("luaDriver")
        try:
            broadcastType = "com.boyaa.stf.screenShot"
            cmd_send = "shell am broadcast -a " + broadcastType + " --es sShotName " + fileName
            self.platformLog(cmd_send)
            driver.adb(cmd_send)
        except:
            self.platformLog("通知apk截图时间失败")

        try:
            cmd_pre = "shell LD_LIBRARY_PATH=/data/local/tmp exec /data/local/tmp/minicap -P "
            cmd_minicap = cmd_pre + self.getResolution(
            ) + "/0 -s >/mnt/sdcard/minicap_screen/" + fileName
            self.platformLog(cmd_pre)
            driver.adb(cmd_minicap)
        except:
            self.platformLog("调用minicap截图失败")
Exemple #4
0
 def deletefile(self):
     driver = singleGlobalVar.get("luaDriver")
     self.platformLog("deleteFile  开始测试前删除配置及性能相关文件")
     config = ConfigHelper(constant.cfg_path)
     package = config.getValue('appium', 'apppackage')
     #删除性能测试结果文件
     delCsvCmd = "shell rm -r /mnt/sdcard/" + package + "_result.csv"
     self.platformLog(delCsvCmd)
     try:
         driver.adb(delCsvCmd)
     except:
         self.platformLog("删除性能测试文件失败")
     #minicap截图文件夹
     delMinicapCmd = "shell rm -rf /mnt/sdcard/minicap_screen"
     self.platformLog(delMinicapCmd)
     try:
         driver.adb(delMinicapCmd)
     except:
         self.platformLog("删除minicap截图文件夹失败")
     mkdirCmd = "shell mkdir /mnt/sdcard/minicap_screen"
     self.platformLog(mkdirCmd)
     try:
         driver.adb(mkdirCmd)
     except:
         self.platformLog("新建minicap截图文件夹失败")
Exemple #5
0
    def startCollectApp(self):
        '''
        启动性能采集apk
        '''
        self.platformLog("startCollectApp start pmonitor apk")
        config = ConfigHelper(constant.cfg_path)
        #性能采集apk acticity
        apkName = config.getValue('appium', 'collectApkName')
        # 被测apk packageName
        testAPKName = config.getValue('appium', 'apppackage')
        # 最终生成结果文件在手机中目录
        resultFilePath = "/mnt/sdcard/" + testAPKName + "_result.csv"

        # SDK 17后由于权限问题,需要加--user 0
        startCmd = "shell am start --user 0 -n " + apkName + " --es packageName " + testAPKName + " --es filePath " + resultFilePath
        self.platformLog(startCmd)
        singleGlobalVar.get("luaDriver").adb(startCmd)
Exemple #6
0
 def run_test(self):
     time.sleep(10)
     # self.hall_page.wait_element("同步标志")
     self.common.taskScreenShot("login.jpg")
     self.start_step("进入登陆页面")
     if self.hall_page.element_is_exist("暂不认证"):
         self.hall_page.wait_element("暂不认证").click()
     if self.hall_page.element_is_exist("内网"):
         self.hall_page.wait_element("内网").click()
     self.common.sendTagBroadcast(EnumSceneName.EnterHall, EnumSceneType.Start)
     while not self.hall_page.element_is_exist("大厅头像"):
         while self.hall_page.element_is_exist("游客登录"):
             try:
                 self.hall_page.wait_element("游客登录").click()
             except:
                 print "未找到此按钮"
     if self.hall_page.element_is_exist("暂不认证"):
         self.hall_page.wait_element("暂不认证").click()
     if self.hall_page.element_is_exist("进入游戏",2):
         self.hall_page.wait_element("进入游戏").click()
     self.game_page.to_hall_page("大厅头像")
     self.hall_page.wait_element("大厅头像",60)
     self.start_step("德州小测验")
     while (self.game_page.element_is_exist("go",2)):
         driver = singleGlobalVar.get("luaDriver")
         driver.keyevent(4)
         if self.hall_page.element_is_exist("取消"):
             self.hall_page.wait_element("取消").click()
     self.common.sendTagBroadcast(EnumSceneName.EnterHall, EnumSceneType.Stop)
     self.start_step("获取mid")
     self.hall_page.wait_element("大厅头像").click()
     mid = self.hall_page.wait_element("mid").get_attribute('text')
     self.common.set_config_value("casecfg", "mid", str(mid))
     self.start_step("查看是否需要添加金币")
     money = self.hall_page.wait_element("金币数").get_attribute('text')
     money = money.replace(',','')
     print money
     if int(money) < 10000:
         Interface.add_Money(mid,10000)
     self.hall_page.wait_element("关闭").click()
Exemple #7
0
 def gameplay(self):
     i = 1
     self.common.sendTagBroadcast(EnumSceneName.LaiziRoom, EnumSceneType.Start)
     self.game_page.wait_element("开始").click()
     count = 0
     while self.game_page.element_is_exist("破产对话框", 1) == False:
         self.start_step("开始玩第%s场牌" % i)
         while self.game_page.element_is_exist("正在配桌中"):
             self.log_info("正在配桌中,等待")
             time.sleep(3)
             try:
                 self.game_page.wait_element("换桌").click()
             except:
                 self.log_info("换桌失败")
             count += 1
             if (count > 10):
                 self.game_page.is_in_gameroom(singleGlobalVar.get("luaDriver"))
                 self.log_info("等待超时")
                 return
         while self.game_page.element_is_exist("出牌",1)==False:
             list = ["叫地主", "抢地主"]
             for name in list:
                 try:
                     self.game_page.wait_element(name, 0).click()
                 except:
                     self.log_info("未出现抢地主按钮")
             if self.game_page.element_is_exist("继续游戏", 1):
                 break
         if self.game_page.element_is_exist("机器人",1) == False:
             self.game_page.wait_element("托管",0).click()
         while (self.game_page.element_is_exist("提示", 1) or self.game_page.element_is_exist("出牌", 1)):
             try:
                 self.game_page.wait_element("提示",0).click()
                 self.game_page.element_is_exist("出牌",0).click()
             except:
                 self.log_info("未出现提示按钮")
         while self.game_page.element_is_exist("继续游戏",1)==False:
             time.sleep(1)
             self.log_info("正在游戏中")
             endtime = time.time()
             if (endtime - starttime)/60 > self.timeout - 10:
                 self.game_page.is_in_gameroom(singleGlobalVar.get("luaDriver"))
                 return
         self.common.taskScreenShot("gameover_%s.jpg" % i)
         while self.game_page.element_is_exist("继续游戏", 1):
             while self.game_page.element_is_exist("QQ分享"):
                 singleGlobalVar.get("luaDriver").keyevent(4)
             self.game_page.wait_element("继续游戏").click()
         while self.game_page.element_is_exist("去底倍场", 1):
             self.game_page.wait_element("去底倍场",0).click()
         while (self.game_page.element_is_exist("立即购买",1) or self.game_page.element_is_exist("立即领取",1)):
             try:
                 self.game_page.wait_element("关闭1").click()
             except:
                 self.log_info("未出现关闭按钮")
             try:
                 self.game_page.wait_element("关闭2").click()
             except:
                 self.log_info("未出现关闭按钮")
             self.game_page.exit_game(singleGlobalVar.get("luaDriver"))
             self.common.user_money(money=1000)
             self.start_step("进去癞子场")
             while self.hall_page.element_is_exist("游戏列表"):
                 elments1 = self.hall_page.get_elements("游戏列表")
                 elments1[1].click()
                 self.game_page.wait_element("切换按钮").click()
                 elments = self.game_page.get_elements("切换玩法")
                 elments[0].click()
                 self.level_page.wait_element("快速开始").click()
             self.start_step("点击初级场房间")
             while self.level_page.element_is_exist("房间列表"):
                 self.level_page.wait_element("房间列表").click()
         while self.game_page.element_is_exist("开始",2):
             self.game_page.wait_element("开始").click()
         i += 1
Exemple #8
0
 def closedriver(self):
     '''关闭driver
     '''
     singleGlobalVar.get("luaDriver").quit()
Exemple #9
0
 def sendStopServiceBroad(self):
     self.platformLog("sendStopServiceBroad")
     # 广播类型
     broadcastType = "com.boyaa.stf.stopService"
     cmd_send = "shell am broadcast -a " + broadcastType
     singleGlobalVar.get("luaDriver").adb(cmd_send)