Ejemplo n.º 1
0
 def __init__(self, **kwargs):
     self.driver = kwargs["driver"]
     self.path = kwargs["path"]
     self.operateElement = OperateElement(self.driver)
     self.isOperate = True
     self.testInfo = getYam(self.path)["testinfo"]
     self.testCase = getYam(self.path)["testcase"]
Ejemplo n.º 2
0
def init():
    getDevices = getYam(PATH("../yaml/devices.yaml"))
    apkPath = PATH("../yaml/" + getYam(PATH("../yaml/run.yaml"))["app"])
    print(apkPath)
    apkInfo = ApkInfo(apkPath=apkPath)
    for item in getDevices:
        item["app"] = apkPath
        item["appPackage"] = apkInfo.getApkBaseInfo()[0]
        item["appActivity"] = apkInfo.getApkActivity()
    # 统计
    of = OperateFile(PATH("../Log/info.pickle"))
    of.mkdir_file()
    of = OperateFile(PATH("../Log/sum.pickle"))
    of.mkdir_file()

    data = read(PATH("../Log/sum.pickle"))
    data["appName"] = apkInfo.getApkName()
    data["appSize"] = apkInfo.getApkSize()
    data["appVersion"] = apkInfo.getApkBaseInfo()[2]
    data["sum"] = 0
    data["pass"] = 0
    data["fail"] = 0

    write(data=data, path=PATH("../Log/sum.pickle"))
    return getDevices
Ejemplo n.º 3
0
 def __init__(self, **kwargs):
     self.path = kwargs["path"]  # 用例yaml目录
     self.param = getYam(self.path)["param"]  # 请求参数
     self.req = getYam(self.path)["req"]  # 请求url
     self.readParam = readParam(self.param)  # 读取并处理请求参数
     pairPatchParam(params=self.readParam, paramPath=PATH("../Log/param.log"),
                    paramRequestPath=PATH("../Log/paramRequest.log"))  # pict生成参数
     self.getParam = readPictParam(paramRequestPath=PATH("../Log/paramRequest.log"))  # 得到pict生成的参数
     self.readReq = readReq(self.req)  # 0 用例id,1 用例介绍,2 url,3 mehtod
     self.head = requestHead(kwargs["initPath"])  # initPath 请求头准备
     # self.head = requestHead(PATH("../yaml/init.yaml"))  # protocol ,header,port,host,title
     self.data = []
Ejemplo n.º 4
0
 def __init__(self, kwargs):
     #把HomeTest里的app信息重新组装,获得Yaml文件的配置信息
     _init = {
         "driver": kwargs["driver"],
         "test_msg": getYam(kwargs["path"]),
         "device": kwargs["device"],
         "logTest": kwargs["logTest"],
         "caseName": kwargs["caseName"]
     }
     #将组装后的信息传递给Page.PagesObjects
     #getYam(kwargs["path"])得到的"test_msg"为[True, {'testinfo': [{'id': 'test001', 'title': '第一次启动app', 'info': '打开app'}], 'testcase': [{'element_info': '//android.widget.ListView//android.support.v4.view.ViewPager/android.widget.LinearLayout/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]', 'find_type': 'xpath', 'operate_type': 'click', 'info': '点击个人图片'}], 'check': [{'element_info': 'com.ximalaya.ting.android.main.application:id/main_group_rank_title', 'find_type': 'id', 'check': 'default_check', 'info': '打开页面成功'}]}]
     #参看BaseYaml里的getYam方法
     _test_msg = getYam(kwargs["path"])
     self.page = Pages.PagesObjects(_init)
Ejemplo n.º 5
0
def init():
    getDevices = getYam(PATH("../yaml/devices.yaml"))
    # apkPath = PATH("../yaml/" + getYam(PATH("../yaml/run.yaml"))["app"])
    # print(apkPath)
    # apkInfo = ApkInfo(apkPath=apkPath)
    for item in getDevices:
        # item["app"] = apkPath
        # item["appPackage"] = apkInfo.getApkBaseInfo()[0]
        # item["appActivity"] = apkInfo.getApkActivity()
        item["appPackage"] = "com.huawei.works"
        item["appActivity"] = "huawei.w3.ui.welcome.W3SplashScreenActivity"
    # 统计

    destroy()
    of = OperateFile(PATH("../Log/info.pickle"))
    of.mkdir_file()
    of = OperateFile(PATH("../Log/sum.pickle"))
    of.mkdir_file()

    data = read(PATH("../Log/sum.pickle"))
    # data["appName"] = apkInfo.getApkName()
    # data["appSize"] = apkInfo.getApkSize()
    # data["appVersion"] = apkInfo.getApkBaseInfo()[2]
    data["appName"] = "weblink"
    data["appSize"] = "25M"
    data["appVersion"] = "1.2.3"
    data["sum"] = 0
    data["pass"] = 0
    data["fail"] = 0

    write(data=data, path=PATH("../Log/sum.pickle"))
    return getDevices
Ejemplo n.º 6
0
def get_driver():
    chromedriver = PATH("../exe/chromedriver.exe")
    os.environ["webdriver.chrome.driver"] = chromedriver
    driver = webdriver.Chrome(chromedriver)
    driver.maximize_window()  # 将浏览器最大化
    openurl = getYam(PATH("../Yamls/config.yaml"))[1]["url"]
    driver.get(openurl)
    return driver
Ejemplo n.º 7
0
 def __init__(self, kwargs):
     _init = {
         "driver": kwargs["driver"],
         "test_msg": getYam(kwargs["path"]),
         "logTest": kwargs["logTest"],
         "caseName": kwargs["caseName"]
     }
     self.page = Pages.PagesObjects(_init)
Ejemplo n.º 8
0
 def __init__(self, **kwargs):
     self.driver = kwargs["driver"]
     self.path = kwargs["path"]
     self.operateElement = OperateElement(self.driver)
     self.isOperate = True
     test_msg = getYam(self.path)
     self.testInfo = test_msg["testinfo"]
     self.testCase = test_msg["testcase"]
     self.testcheck = test_msg["check"]
     self.getValue = []
Ejemplo n.º 9
0
 def __init__(self, **kwargs):
     self.driver = kwargs["driver"]
     if kwargs.get("launch_app", "0") == "0":  # 若为空,重新打开app
         self.driver.launch_app()
     self.path = kwargs["path"]
     self.operateElement = OperateElement(self.driver)
     self.isOperate = True
     test_msg = getYam(self.path)
     self.testInfo = test_msg["testinfo"]
     self.testCase = test_msg["testcase"]
     self.testcheck = test_msg["check"]
     self.get_value = []
Ejemplo n.º 10
0
    def checkPoint(self, caseName, logTest, devices):
        result = False
        if not self.isOperate:
            print("操作失败,检查点失败")
        else:
            check = getYam(self.path)["check"]
            result = self.operateElement.findElement(check)  # 检查点

        countSum(result)
        countInfo(result=result, testInfo=self.testInfo, caseName=caseName, driver=self.driver, logTest=logTest,
                  devices=devices)
        return result
Ejemplo n.º 11
0
 def __init__(self, **kwargs):
     self.driver = kwargs["driver"]
     if kwargs.get("launch_app", "0") == "0":  # 若为空,重新打开app
         self.driver.launch_app()
     self.path = kwargs["path"]
     self.operateElement = OperateElement(self.driver)
     self.isOperate = True
     test_msg = getYam(self.path)
     self.testInfo = test_msg["testinfo"]
     self.testCase = test_msg["testcase"]
     self.testcheck = test_msg["check"]
     self.get_value = []
     self.is_get = False  # 检查点特殊标志,结合get_value使用。若为真,说明检查点要对比历史数据和实际数据
     self.msg = ""
Ejemplo n.º 12
0
 def __init__(self, kwargs):
     self.driver = kwargs["driver"]
     if kwargs.get("launch_app", "0") == "0":
         self.driver.launch_app()
     self.path = kwargs["path"]
     self.operateElement = OperateElement(self.driver)
     self.isOperate = True
     test_msg = getYam(self.path)
     self.testInfo = test_msg["testinfo"]
     self.testCase = test_msg["testcase"]
     self.testcheck = test_msg["check"]
     self.device = kwargs["device"]
     self.logTest = kwargs["logTest"]
     self.caseName = kwargs["caseName"]
     self.get_value = []
     self.msg = ""
Ejemplo n.º 13
0
 def __init__(self, kwargs):
     self.driver = kwargs["driver"]
     if kwargs.get("launch_app", "0") == "0":  # 若为空,重新打开app
         self.driver.launch_app()
     self.path = kwargs["path"]
     self.operateElement = OperateElement(self.driver)
     self.isOperate = True
     test_msg = getYam(self.path)
     self.testInfo = test_msg["testinfo"]
     self.testCase = test_msg["testcase"]
     self.testcheck = test_msg["check"]
     self.device = kwargs["device"]
     self.logTest = kwargs["logTest"]
     self.caseName = kwargs["caseName"]
     self.get_value = []
     self.msg = ""
Ejemplo n.º 14
0
def appium_testcase(devices):
    getRun = getYam(PATH("../yaml/run.yaml"))
    print(devices)
    desired_caps = {}
    desired_caps['platformName'] = devices["platformName"]
    desired_caps['platformVersion'] = devices["platformVersion"]
    desired_caps['deviceName'] = devices["deviceName"]
    desired_caps['appPackage'] = devices["appPackage"]
    desired_caps['appActivity'] = devices["appActivity"]
    desired_caps['udid'] = devices["deviceName"]
    # desired_caps["unicodeKeyboard"] = "True"
    # desired_caps["resetKeyboard"] = "True"
    desired_caps["noReset"] = "True"
    # desired_caps['app'] = devices["app"]

    remote = "http://127.0.0.1:" + str(devices["port"]) + "/wd/hub"
    driver = webdriver.Remote(remote, desired_caps)
    return driver
Ejemplo n.º 15
0
    def __init__(self, kwargs):
        self.driver = kwargs["driver"]  #Driver
        if kwargs.get("launch_app", "0") == "0":  # 若为空,重新打开app
            self.driver.launch_app()
        self.path = kwargs["path"]   #用例参数yaml路径
        self.operateElement = OperateElement(self.driver) #元素操作
        self.isOperate = True  #元素是否可执行,默认为可以。

        #从yaml文件解析操作步骤和执行结果
        test_msg = getYam(self.path)
        self.testInfo = test_msg["testinfo"]
        self.testCase = test_msg["testcase"]
        self.testcheck = test_msg["check"]
        #每一条用例由  testinfo,testcase,check3部分组成,其中testcase由多个元素组成
        self.device = kwargs["device"]
        self.logTest = kwargs["logTest"]   #myLog().getLog(cls.devicesName)
        self.caseName = kwargs["caseName"] #测试函数名
        self.get_value = ['ERASE EVERYTHING']
        self.location = []
        self.msg = ""
Ejemplo n.º 16
0
def ReplaceYaml(yaml, newyaml, el_lists):
    el_lists = getYam(el_lists)
    resource = getYam(yaml)
    tc_list = resource[1]['testcase']
    tc_check = resource[1]['check']
    tc_key = []
    check_key = []
    tc_type_key = []
    check_type_key = []

    for item in tc_list:
        if '$' in item['element_info']:
            tc_key.append(item['element_info'])

        if '$' in item['find_type']:
            tc_type_key.append(item['find_type'])

    for item in tc_check:
        if '$' in item['element_info']:
            check_key.append(item['element_info'])

        if '$' in item['find_type']:
            check_type_key.append(item['find_type'])

    with open(yaml, 'r', encoding='utf-8') as yml_file:
        with open(newyaml, 'wt') as yml_output:
            yml_file_lines = yml_file.readlines()
            for line in yml_file_lines:
                if '$' in line:
                    new_line = line
                    for tc_el_info in tc_key:
                        if tc_el_info in new_line:
                            replacement = ""
                            if tc_el_info in el_lists[1].keys():
                                replacement = el_lists[1][tc_el_info]
                            new_line = new_line.replace(
                                tc_el_info, replacement)
                            yml_output.write(new_line)

                    for tc_type_info in tc_type_key:
                        if tc_type_info in new_line:
                            replacement = ""
                            if tc_type_info in el_lists[1].keys():
                                replacement = el_lists[1][tc_type_info]
                            new_line = new_line.replace(
                                tc_type_info, replacement)
                            yml_output.write(new_line)

                    for check_el_info in check_key:
                        if check_el_info in new_line:
                            replacement = ""
                            if check_el_info in el_lists[1].keys():
                                replacement = el_lists[1][check_el_info]
                            new_line = new_line.replace(
                                check_el_info, replacement)
                            yml_output.write(new_line)

                    for check_type_info in check_type_key:
                        if check_type_info in new_line:
                            replacement = ""
                            if check_type_info in el_lists[1].keys():
                                replacement = el_lists[1][check_type_info]
                            new_line = new_line.replace(
                                check_type_info, replacement)
                            yml_output.write(new_line)
                else:
                    yml_output.write(line)

    yml_file.close()
    yml_output.close()
Ejemplo n.º 17
0
def requestHead(path):
    '''
    请求头
    :return: 
    '''
    return getYam(path)
Ejemplo n.º 18
0
 def __init__(self, kwargs):
     _init = {"driver": kwargs["driver"], "test_msg": getYam(kwargs["path"]), "device": kwargs["device"],
              "logTest": kwargs["logTest"], "caseName": kwargs["caseName"]}
     self.page = Pages.PagesObjects(_init)
Ejemplo n.º 19
0
       pict生成请求参数
       :param kwargs:
       params: 请求的参数列表,类型为list
       paramPath: 用例目录
       paramRequestPath: 已生成用例目录
       :return:
       '''

    for item in kwargs["params"]:
        write(kwargs["paramPath"], item)
    os.popen("pict " + kwargs["paramPath"] + ">" + kwargs["paramRequestPath"])
    time.sleep(1)


if __name__ == "__main__":
    writeResultParam("")
    # requestHead()
    loginY = getYam(PATH("../yaml/submitApply.yaml"))

    result = readParam(loginY["param"])

    pairPatchParam(params=result,
                   paramPath=PATH("../Log/param.log"),
                   paramRequestPath=PATH("../Log/paramRequest.log"))
    # time.sleep(1)
    getParam = readPictParam(paramRequestPath=PATH("../Log/paramRequest.log"))

    # t = [{'ip': {'error': '3', 'rep': 'dict'}, 'format2': {'error': '3', 'rep': 'dict'}}, {'ip': {'input': '18.4.255.255', 'type': 'str', 'error': '0', 'rep': 'dict'}, 'format2': {'error': '1', 'rep': 'dict'}}, {'ip': {'input': '""', 'type': 'str', 'error': '2', 'rep': 'dict'}, 'format2': {'error': '3', 'rep': 'dict'}}, {'ip': {'input': '""', 'type': 'str', 'error': '2', 'rep': 'dict'}, 'format2': {'error': '1', 'rep': 'dict'}}, {'ip': {'error': '4', 'rep': 'dict'}, 'format2': {'error': '1', 'rep': 'dict'}}, {'ip': {'input': '18.4.255.255', 'type': 'str', 'error': '0', 'rep': 'dict'}, 'format2': {'input': '""', 'type': 'str', 'error': '2', 'rep': 'dict'}}, {'ip': {'error': '1', 'rep': 'dict'}, 'format2': {'input': '""', 'type': 'str', 'error': '2', 'rep': 'dict'}}, {'ip': {'error': '3', 'rep': 'dict'}, 'format2': {'error': '1', 'rep': 'dict'}}, {'ip': {'error': '1', 'rep': 'dict'}, 'format2': {'error': '3', 'rep': 'dict'}}, {'ip': {'error': '4', 'rep': 'dict'}, 'format2': {'error': '3', 'rep': 'dict'}}, {'ip': {'error': '3', 'rep': 'dict'}, 'format2': {'input': '1111', 'type': 'str', 'error': '0', 'rep': 'dict'}}, {'ip': {'input': '""', 'type': 'str', 'error': '2', 'rep': 'dict'}, 'format2': {'input': '1111', 'type': 'str', 'error': '0', 'rep': 'dict'}}, {'ip': {'error': '4', 'rep': 'dict'}, 'format2': {'input': '""', 'type': 'str', 'error': '2', 'rep': 'dict'}}, {'ip': {'error': '1', 'rep': 'dict'}, 'format2': {'input': '1111', 'type': 'str', 'error': '0', 'rep': 'dict'}}, {'ip': {'input': '18.4.255.255', 'type': 'str', 'error': '0', 'rep': 'dict'}, 'format2': {'error': '3', 'rep': 'dict'}}, {'ip': {'error': '4', 'rep': 'dict'}, 'format2': {'input': '1111', 'type': 'str', 'error': '0', 'rep': 'dict'}}, {'ip': {'error': '1', 'rep': 'dict'}, 'format2': {'error': '1', 'rep': 'dict'}}, {'ip': {'error': '3', 'rep': 'dict'}, 'format2': {'input': '""', 'type': 'str', 'error': '2', 'rep': 'dict'}}, {'ip': {'input': '""', 'type': 'str', 'error': '2', 'rep': 'dict'}, 'format2': {'input': '""', 'type': 'str', 'error': '2', 'rep': 'dict'}}, {'ip': {'input': '18.4.255.255', 'type': 'str', 'error': '0', 'rep': 'dict'}, 'format2': {'input': '1111', 'type': 'str', 'error': '0', 'rep': 'dict'}}]
    for item in getParam:
        print("----------")
        print(paramsFilter(item))