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"]
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
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 = []
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)
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
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
def __init__(self, kwargs): _init = { "driver": kwargs["driver"], "test_msg": getYam(kwargs["path"]), "logTest": kwargs["logTest"], "caseName": kwargs["caseName"] } self.page = Pages.PagesObjects(_init)
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 = []
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 = []
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
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 = ""
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 = ""
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 = ""
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
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 = ""
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()
def requestHead(path): ''' 请求头 :return: ''' return getYam(path)
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)
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))