def deletefile(self, driver): print "----删除自动登录文件----" config = ConfigHelper(constant.cfg_path) package = config.getValue('appium', 'apppackage') #正式服 command = "shell rm -r /mnt/sdcard/." + package + "/dict/lastLoginInfo.dat" # command = "shell rm -r /mnt/sdcard/.com.boyaa.engineqpsc/dict/lastLoginInfo.dat" print command try: driver.adb(command) except: print "命令执行失败" #预发布 1lastLoginInfo.dat command1 = "shell rm -r /mnt/sdcard/." + package + "/dict/1lastLoginInfo.dat" print command1 try: driver.adb(command1) except: print "命令执行失败" # 预发布 2lastLoginInfo.dat command2 = "shell rm -r /mnt/sdcard/." + package + "/dict/2lastLoginInfo.dat" try: driver.adb(command2) except: print "命令执行失败" print command2
def switchserver(self): ''' 根据cfg文件切换正式服,测试服,预发布服 @return: ''' self.hall_page = Hall_Page() config=ConfigHelper(constant.cfg_path) env = config.getValue('casecfg', 'env') if env=='0': try: self.hall_page.wait_element("正式服").click() except: print "切换到正式服失败" elif env =='1': try: self.hall_page.wait_element("测试服").click() except: print "切换到测试服失败" elif env =='2': try: self.hall_page.wait_element("预发布").click() except: print "切换到预发布失败" else: try: self.hall_page.wait_element("预发布").click() except: print "切换到预发布失败"
def pre_test(self): #删除自动登陆文件,置为游客状态 self.common = Common() # 初始化Luadriver capabilities = {} capabilities['noReset'] = False #清除应用缓存 self.luadriver = self.common.setupdriver(capabilities) config = ConfigHelper(constant.cfg_path) global deviceName deviceName = config.getValue('appium', 'deviceName') self.common.switchnetwork(self.luadriver, u"无网络") print self.luadriver.network_connection # if self.luadriver.network_connection == 2: # cmd = "adb -s " + deviceName + " shell am broadcast -a io.appium.settings.wifi --es setstatus disable" # print cmd # subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) # try: # self.luadriver.find_element_by_android_uiautomator('new UiSelector().text("允许")').click() # except: # print "未出现按钮1" # 声明方法 self.login_page = Login_Page() self.hall_page = Hall_Page() #关闭活动页面 self.common.closeactivity_switchserver(self.luadriver)
def run_test(self): ''' 测试用例 ''' self.start_step("等待页面加载完成") self.hall_page.wait_element("同步标志") self.start_step("进入约牌页面") self.hall_page.wait_element("约牌").click() self.start_step("创建免费记分房") self.yuepai_page.create_room('记分房') time.sleep(10) self.yuepai_page.wait_element("准备").click() time.sleep(5) self.yuepai_page.screenshot("before.png") self.luadriver.keyevent(3) # home time.sleep(2) self.yuepai_page.screenshot("being.png") self.start_step("读配置,拉起游戏") config = ConfigHelper(constant.cfg_path) self.luadriver.start_activity(config.getValue('appium', 'apppackage'), config.getValue('appium', 'appactivity')) time.sleep(1) self.yuepai_page.screenshot("after.png") self.yuepai_page.element_not_exist("准备") self.start_step("退出约牌房") self.yuepai_page.exit_yuepai_page() self.hall_page.wait_element("同步标志")
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截图文件夹失败")
def run_test(self): ''' 测试用例 ''' self.start_step("等待页面加载完成") self.hall_page.wait_element("同步标志") self.start_step("进入约牌页面") self.hall_page.wait_element("约牌").click() self.start_step("创建银币/金条房") self.yuepai_page.create_room("创建银币金条房") try: self.yuepai_page.wait_element("准备", 120).click() except: self.log_info("当前页面未展示准备按钮") self.yuepai_page.element_is_exist("已准备") self.yuepai_page.screenshot("before.png") self.start_step("home键") self.luadriver.keyevent(3) # home time.sleep(2) self.yuepai_page.screenshot("being.png") # self.yuepai_page.wait_element("准备") self.start_step("拉起游戏") config = ConfigHelper(constant.cfg_path) self.luadriver.start_activity(config.getValue('appium', 'apppackage'), config.getValue('appium', 'appactivity')) time.sleep(1) self.yuepai_page.screenshot("after.png") self.yuepai_page.element_is_exist("已准备") self.start_step("退出约牌房") self.yuepai_page.exit_yuepai_page() self.hall_page.wait_element("同步标志")
def get_mid(self): cid = self.get_cid() time.sleep(3) config = ConfigHelper(constant.cfg_path) region = config.getValue('casecfg', 'region') mid = PHPInterface.get_mid(cid, region) print "用户mid为:%s" % mid return mid
def getcfg(): config = ConfigHelper(constant.cfg_path) env = config.getValue('casecfg', 'env') if env == '1': AUTO_TEST_URL = "http://192.168.200.21/dfqp/?action=autotest.api" elif env == '2': AUTO_TEST_URL = "http://pcususus01.ifere.com/ddfqp/?action=autotest.api" else: print "只支持测试和预发布环境进行接口测试" return AUTO_TEST_URL
def getcfg(): config = ConfigHelper(constant.cfg_path) AUTO_TEST_URL = "http://192.168.201.75/xx-landlord/application/api.alltest.php?" env = config.getValue('casecfg', 'env') if env == '1': AUTO_TEST_URL = "http://192.168.201.75/xx-landlord/application/api.alltest.php?" elif env == '2': AUTO_TEST_URL = "" else: print "只支持内网和外网测试环境进行接口测试" return AUTO_TEST_URL
def deletefile(self): driver = singleGlobalVar.get("luaDriver") self.platformLog("deleteFile 开始测试前删除配置及性能相关文件") config = ConfigHelper(constant.cfg_path) package = config.getValue('appium', 'apppackage') #正式服 command = "shell rm -r /mnt/sdcard/." + package + "/dict/lastLoginInfo.dat" self.platformLog(command) try: driver.adb(command) except: self.platformLog("删除正式服上次登录配置文件失败") #预发布 1lastLoginInfo.dat command1 = "shell rm -r /mnt/sdcard/." + package + "/dict/1lastLoginInfo.dat" self.platformLog(command1) try: driver.adb(command1) except: self.platformLog("删除预发布1lastLoginInfo.dat失败") # 预发布 2lastLoginInfo.dat command2 = "shell rm -r /mnt/sdcard/." + package + "/dict/2lastLoginInfo.dat" self.platformLog(command2) try: driver.adb(command2) except: self.platformLog("删除预发布1lastLoginInfo.dat失败") #删除性能测试结果文件 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截图文件夹失败")
def unlock(self): #解锁 self.luadriver.adb("shell am start -n com.example.unlock/.Unlock") time.sleep(4) self.luadriver.keyevent(3) # home time.sleep(3) self.luadriver.adb("shell am start -n com.example.unlock/.Unlock") self.luadriver.keyevent(3) # home time.sleep(3) print "读配置,拉起游戏" config=ConfigHelper(constant.cfg_path) self.luadriver.start_activity(config.getValue('appium','apppackage'), config.getValue('appium','appactivity'))
def runtest(self, args): ''' args参数为数组类型 ''' test_conf = TestCaseSettings(args) #读配置 config = ConfigHelper(constant.cfg_path) report_formal = config.getValue('report', 'reportFormal') if report_formal == 'XMLReport': runner = TestRunner(XMLTestReport(self.device)) else: runner = TestRunner(EmptyTestReport(lambda tc: StreamResult())) print test_conf runner.run(test_conf)
def get_idle_userinfo_and_mid(self): ''' 获取一个空闲账号的mid :return: ''' user_info = self.get_user() print user_info UserCID = user_info.get('cid') config = ConfigHelper(cfg_path) region = config.getValue('casecfg', 'region') UserMID = PHPInterface.get_mid(UserCID, region) mid_and_userinfo = {} mid_and_userinfo['userinfo'] = user_info mid_and_userinfo['mid'] = UserMID return mid_and_userinfo
def sendStopServiceBroad(self): self.platformLog("sendStopServiceBroad") config = ConfigHelper(constant.cfg_path) # 广播类型 broadcastType = "com.boyaa.stf.stopService" cmd_send = "shell am broadcast -a " + broadcastType singleGlobalVar.get("luaDriver").adb(cmd_send)
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)
def get_game_list(self): ''' 获取当前界面子游戏列表名 :return: 游戏列表名 ''' self.game_page = Game_Page() luaobj = LuaDriver() luadriver = luaobj.getLuaDriver() config = ConfigHelper(constant.cfg_path) game_id = config.getValue("casecfg", "game_id") game_id = game_id.rstrip("|") # print game_id gamelist = game_id.split("|") print gamelist game_list = [] # print game_id if game_id == 'undefined': elements = self.game_page.get_elements("子游戏列表") # print len(elements) #去重,同时去除game0(约牌,比赛场)和game-1(更多游戏) elementsblack = ["game0", "game-1"] for i in range(len(elements)): name = elements[i].get_attribute("name") if name not in elementsblack: elementsblack.append(name) print name game_list.append(elements[i]) # print len(game_list) else: #gameid,添加"game" # print len(gamelist) for i in range(len(gamelist)): print "game" + gamelist[i] gameid = "game" + gamelist[i] try: time.sleep(1) elements1 = luadriver.find_lua_element_by_name(gameid) print elements1.get_attribute("name") game_list.append(elements1) except: print "找不到元素 %s" % gamelist[i] print game_list return game_list
def runtest(self, args): ''' args参数为数组类型 ''' test_conf = TestCaseSettings(args) # print 'test_conf:',test_conf #读配置 config=ConfigHelper(constant.cfg_path) print constant.cfg_path report_formal=config.getValue('report','reportFormal') if report_formal=='XMLReport': # if self.device == None: # runner = TestRunner(XMLTestReport('cases')) # else: runner = TestRunner(XMLTestReport(self.device)) else: runner = TestRunner(EmptyTestReport(lambda tc: StreamResult())) print "开始执行用例" runner.run(test_conf)
def save_btn_list(path, btn_list): if not os.path.exists('./%s/cfg/btn.ini' % serial): f = open('./%s/cfg/btn.ini' % serial, 'w') f.close() Btn_list = json.dumps(btn_list) config = ConfigHelper('./%s/cfg/btn.ini' % serial) if not config.getConfig(path): config.addSection(path, 'btn_list', '') config.modifConfig(path, 'btn_list', Btn_list)
def save_btn_list(path,btn_list): ''' 保存btn_list到ini文件(../cfg/btn.ini) @param path: 对应ini文件中的section值 @param btn_list: 对应ini文件中的options值 @return: ''' if not os.path.exists('../cfg/btn.ini'): f = open('../cfg/btn.ini','w') f.close() Btn_list = json.dumps(btn_list) config = ConfigHelper('../cfg/btn.ini') if not config.getConfig(path): config.addSection(path,'btn_list','') config.modifConfig(path,'btn_list',Btn_list)
def set_config_value(self,section,key,value): config = ConfigHelper(constant.cfg_path) config.modifConfig(section=section, key=key,value=value) return True
else: runner = TestRunner(XMLTestReport(self.device)) else: runner = TestRunner(EmptyTestReport(lambda tc: StreamResult())) runner.run(test_conf) if __name__ == '__main__': #获取device_name参数 device = None try: device = str(sys.argv[1]) except: print "no devicename" if device == None: cfg_path = os.sep.join([util.getrootpath(), 'cfg', 'cfg.ini']) config = ConfigHelper(cfg_path) cfgfile = os.sep.join([util.getrootpath(), 'cfg', 'cfg.ini']) logfile = os.sep.join([util.getrootpath(), 'logs']) else: #根据device写入配置 cfgfile = os.sep.join([util.getrootpath(), device, 'cfg', 'cfg.ini']) logfile = os.sep.join([util.getrootpath(), device, 'logs']) constant.cfg_path = cfgfile constant.log_path = logfile config = ConfigHelper(constant.cfg_path) cases = config.getValue('runtest', 'cases') cases = cases.split(',') runtest = RunTest(device) runtest.runtest(cases)
runner = TestRunner(XMLTestReport(self.device)) else: runner = TestRunner(EmptyTestReport(lambda tc: StreamResult())) print "开始执行用例" runner.run(test_conf) if __name__ == '__main__': #获取device_name参数 device = None try: device=str(sys.argv[1]) except: print "no devicename" if device == None: cfg_path = os.sep.join([util.getrootpath(), 'cfg', 'cfg.ini']) config = ConfigHelper(cfg_path) device = config.getValue('appium', 'deviceName') cfgfiletmp = os.sep.join([util.getrootpath(),device,'cfg']) if os.path.exists(cfgfiletmp): pass else: os.makedirs(cfgfiletmp) shutil.copy(cfg_path, cfgfiletmp) cfgfile = os.sep.join([util.getrootpath(), device, 'cfg', 'cfg.ini']) logfile = os.sep.join([util.getrootpath(),device,'logs']) logfile = os.sep.join([util.getrootpath(),device,'report']) if os.path.exists(logfile): pass else: os.makedirs(logfile) # use_cfg = config.getValue('casecfg', 'user_cfg')
#!/usr/bin/python # -*- coding:utf-8 -*- import os, shutil, time from runcenter.enums import EnumPriority, EnumStatus from runcenter.testcase import debug_run_all, TestCase from common.common import Common from uilib.hall_page import Hall_Page from common.ergodic_util import dumpfile, get_btn_list_json, get_btn_list_ini, save_btn_list, click_btn, add_to_btn_black, filter_BtnBlackClicked from utils.confighelper import ConfigHelper import utils.constant as constant cfg_path = constant.cfg_path print 'cfg_path:%s' % cfg_path serial = cfg_path.split('/')[-3] config = ConfigHelper('./%s/cfg/cfg.ini' % serial) class ERGODIC(TestCase): ''' 遍历 ''' owner = "YoungLiu" status = EnumStatus.Design priority = EnumPriority.High timeout = 666 def pre_test(self): current_path = os.getcwd() print 'current path:%s' % current_path self.start_step('删除上一次任务留下的状态文件') if os.path.exists('./%s/cfg/btn.ini' % serial):
def get_btn_list_ini(path):#从ini文件获取btn_list config = ConfigHelper('../cfg/btn.ini') lst = config.getValue(path, 'btn_list') btn_list = json.loads(lst) return btn_list
def get_btn_list_ini(path): config = ConfigHelper('./%s/cfg/btn.ini' % serial) lst = config.getValue(path, 'btn_list') btn_list = json.loads(lst) return btn_list
# else: runner = TestRunner(XMLTestReport(self.device)) else: runner = TestRunner(EmptyTestReport(lambda tc: StreamResult())) runner.run(test_conf) if __name__ == '__main__': #获取device_name参数 device = None try: device=str(sys.argv[1]) except: print "no devicename" if device == None: cfg_path = os.sep.join([util.getrootpath(), 'cfg', 'cfg.ini']) config = ConfigHelper(cfg_path) device = config.getValue('appium', 'deviceName') cfgfiletmp = os.sep.join([util.getrootpath(),device,'cfg']) if os.path.exists(cfgfiletmp): pass else: os.makedirs(cfgfiletmp) shutil.copy(cfg_path, cfgfiletmp) cfgfile = os.sep.join([util.getrootpath(), device, 'cfg', 'cfg.ini']) logfile = os.sep.join([util.getrootpath(),device,'logs']) if os.path.exists(logfile): pass else: os.makedirs(logfile) else: #根据device写入配置
def set_config_value(self,section,key,value): #设置cfg.ini文件获取配置项的值 config = ConfigHelper(constant.cfg_path) config.modifConfig(section, key,value) return True
def get_config_value(self,section,key): #从cfg.ini文件获取配置项的值 config = ConfigHelper(constant.cfg_path) value =config.getValue(section, key) return value
def get_config_value(self,section,key): config = ConfigHelper(constant.cfg_path) value =config.getValue(section=section, key=key) return value