コード例 #1
0
    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
コード例 #2
0
 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 "切换到预发布失败"
コード例 #3
0
 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)
コード例 #4
0
 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("同步标志")
コード例 #5
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截图文件夹失败")
コード例 #6
0
 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("同步标志")
コード例 #7
0
 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
コード例 #8
0
ファイル: util.py プロジェクト: YiFeng0755/testcase
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
コード例 #9
0
ファイル: util.py プロジェクト: YiFeng0755/testcase
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
コード例 #10
0
    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截图文件夹失败")
コード例 #11
0
 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'))
コード例 #12
0
 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)
コード例 #13
0
 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
コード例 #14
0
 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)
コード例 #15
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)
コード例 #16
0
 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
コード例 #17
0
    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)
コード例 #18
0
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)
コード例 #19
0
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)
コード例 #20
0
 def set_config_value(self,section,key,value):
     config = ConfigHelper(constant.cfg_path)
     config.modifConfig(section=section, key=key,value=value)
     return True
コード例 #21
0
            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)
コード例 #22
0
            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')
コード例 #23
0
#!/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):
コード例 #24
0
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
コード例 #25
0
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
コード例 #26
0
            # 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写入配置
コード例 #27
0
 def set_config_value(self,section,key,value):
     #设置cfg.ini文件获取配置项的值
     config = ConfigHelper(constant.cfg_path)
     config.modifConfig(section, key,value)
     return True
コード例 #28
0
 def get_config_value(self,section,key):
     #从cfg.ini文件获取配置项的值
     config = ConfigHelper(constant.cfg_path)
     value =config.getValue(section, key)
     return value
コード例 #29
0
 def get_config_value(self,section,key):
     config = ConfigHelper(constant.cfg_path)
     value =config.getValue(section=section, key=key)
     return value