def test_02_tablerecord(self): ''' 表字段查询 ''' url_part = self.dmp + "/warehouse/tablerecord?projectId={}&tableName={}".format( self.projectId, "key_words") utils().getRequest(url_part, Token=self.Token)
def test_02_metaeventtype(self): '''创建元事件分类''' global eventtypeName #元事件分类名称 eventtypeName = self.eventtypeName if eventtypeName == "": #如果元事件分类名称没有,则新增 url_part = self.dmp + "/metaeventtype" query_param = ['%%%s%%' % 'eventTypetest'] self.sql = "SELECT name FROM dmp_meta_event_type where name like %s order by id asc;" sqlResult = MyDB().executeSQL(self.sql, query_param, database=self.database) if sqlResult: Name = sqlResult.split("test") if Name[1] == "": num = 0 else: num = Name[1] else: num = 0 eventtypeName = "eventTypetest" + str(int(num) + 1) data = { "createTime": self.nowtime, "name": eventtypeName, "projectId": self.projectId } utils().postRequest(url_part, Content_type="json", data=data, Token=self.Token)
def test_07_modelPage(self): '''设置ETL''' url_part = self.dmp + "/projectmodeletl" data = { "modelId": modelPageList[0]['id'], "projectId": self.projectId, "tables": [{ "rules": [{ "field": "sign_name", "operator": "equal", "value": "交易猫1" }], "setUp": "true", "tableName": self.tableName, #"sms_record" "targetTableName": "string" }] } utils().putOrDelRequest(option="put", url_part=url_part, Content_type="json", data=data, Token=self.Token) Model().test_02_modelPage() version = modelPageList[0]['projectModelInstence']['version'] print(version)
def test_0602_metaevent(self): ''' 编辑元事件 2.修改元事件关键词(新增关键词/删除关键词/删除一行关键词),版本号+0.1 ''' url_part = self.dmp + "/metaevent" waitList = ["insert", "delete", "deleteLine"] for waitmodifyKeywords in waitList: if waitmodifyKeywords == "insert": waitModifyEventData = eventRecord().makeupEventData() waitModifyEventData['metaEventKeywords'][0][ 'wordGroup'] = "短信,验证码,测试新增关键词" elif waitmodifyKeywords == "delete": waitModifyEventData = eventRecord().makeupEventData() waitModifyEventData['metaEventKeywords'][1]['wordGroup'] = "短信" elif waitmodifyKeywords == "deleteLine": waitModifyEventData = eventRecord().makeupEventData() waitModifyEventData['metaEventKeywords'] = [ waitModifyEventData['metaEventKeywords'][0] ] #不保留第二个 utils().putOrDelRequest("PUT", url_part, Content_type="json", data=waitModifyEventData, Token=self.Token) eventRecord().test_05_metaevent() if event['version'] > 1.0: print("元事件编辑信息:元事件关键词" + waitmodifyKeywords + "版本+0.1,修改正确") else: print("元事件编辑信息:元事件关键词" + waitmodifyKeywords + "版本未变,修改错误")
def test_01_projectmodel(self): '''/audiencepackage/userid 查询人群包的userId''' url_part = "/dmp/audiencepackage/userid" modelDictIds = utils().getDict(type="packageType", Token=self.Token) data1 = { "current": 0, "eventId": 0, "numberLimit": 0, "packageType": modelDictIds[0], "partitionDayList": [{ "operator": "string", "value": "string" }], "projectId": 0, "signName": "string", "size": 0 } data = { "packageType": modelDictIds[0], "partitionDayList": [{ "operator": "string", "value": "string" }], "projectId": 0, "signName": "string", } utils().postRequest(url_part, Content_type="json", data=data, Token=self.Token)
def test_01_table(self): ''' 表查询 ''' url_part = self.dmp + "/warehouse/tables?projectId={}".format( self.projectId, "event_record") utils().getRequest(url_part, Token=self.Token)
def test_0801_delmetaeventType(self): ''' 删除元事件分类-情景说明 一:分类下不存在元事件,删除成功 ''' url_part = self.dmp + "/metaeventtype/" + str(event['typeId']) print("元事件分类下不存在元事件,删除分类ID为" + str(event['typeId']) + "的元事件,删除成功") utils().putOrDelRequest("DELETE", url_part, Token=self.Token)
def test_0701_delmetaevent(self): ''' 删除元事件-情景说明 一:元事件在当天创建的,可以删除 ''' url_part = self.dmp + "/metaevent/" + str(event['id']) print("元事件在当天创建的,删除ID为" + str(event['id']) + "的元事件,删除成功") utils().putOrDelRequest("DELETE", url_part, Token=self.Token)
def test_0702_delmetaevent(self): ''' 删除元事件-情景说明 一:元事件非当天创建的,hive中存在对应的元事件记录不可删除 ''' url_part = self.dmp + "/metaevent/" + str(self.usedEventId) print("元事件非当天创建的,删除ID为" + str(self.usedEventId) + "的元事件,删除提示:元事件下存在数据不能被删除") utils().putOrDelRequest("DELETE", url_part, Token=self.Token)
def test_03_projectmodelcal(self): '''计算模型设置''' url_part = self.dmp + "/projectmodelcal" data = {"modelId": CalModel['id'], "projectId": self.projectId} utils().putOrDelRequest(option="put", url_part=url_part, Content_type="json", data=data, Token=self.Token)
def test_0802_delmetaeventType(self): ''' 删除元事件分类-情景说明 一:分类下存在元事件,删除失败 ''' typeId = 18 url_part = self.dmp + "/metaeventtype/" + str(self.usedTypeId) print("元事件分类下存在元事件,删除分类ID为" + str(typeId) + "的元事件,删除提示:元事件类型下存在元事件不能删除") utils().putOrDelRequest("DELETE", url_part, Token=self.Token)
def test_05_exportPerson(self): '''导出人群包''' # for i in range(1, 30): url_part = "/dmp/personprofile/userBag" data = { "code": 'jeFQ', "projectCode": self.projectCode, "projectId": self.projectId } # data = {"code":personprofile[0]['code'], "projectCode":self.projectCode,"projectId":self.projectId} url_part = url_part + utils.parse_url(data) utils().getRequestForExport(url_part, Token=self.Token)
def test_0603_metaevent(self): ''' 编辑元事件 2.修改元事件属性(属性名/属性显示名/数据类型/删除属性/新增属性),版本号+0.1 ''' url_part = self.dmp + "/metaevent" waitList = ["code", "name", "propertyType", "delete", "insert"] for Properties in waitList: if Properties == "code": waitModifyEventData = eventRecord().makeupEventData() waitModifyEventData['metaEventProperties'][0][ 'code'] = "modify" + waitModifyEventData[ 'metaEventProperties'][0]['code'] elif Properties == "name": waitModifyEventData = eventRecord().makeupEventData() waitModifyEventData['metaEventProperties'][0][ 'name'] = "modify" + waitModifyEventData[ 'metaEventProperties'][0]['name'] elif Properties == "propertyType": waitModifyEventData = eventRecord().makeupEventData() propertyType = int(waitModifyEventData['metaEventProperties'] [0]['propertyType']) if propertyType < 4: waitModifyEventData['metaEventProperties'][0][ 'propertyType'] = str(propertyType + 1) elif Properties == "delete": waitModifyEventData = eventRecord().makeupEventData() removeContent = waitModifyEventData['metaEventProperties'][0] removeContent.clear() waitModifyEventData['metaEventProperties'] = [ waitModifyEventData['metaEventProperties'].pop() ] elif Properties == "insert": waitModifyEventData = eventRecord().makeupEventData() PropertiesData = { "code": "sxModifyInsert_Codetest", "name": "sxModifyInsert_Nametest", "propertyType": str(1), "sortNumber": str(0) } waitModifyEventData['metaEventProperties'].append( PropertiesData) utils().putOrDelRequest("PUT", url_part, Content_type="json", data=waitModifyEventData, Token=self.Token) eventRecord().test_05_metaevent() if eventContent['metaEvent']['version'] > 1.0: print("元事件编辑信息:元事件属性" + Properties + "版本+0.1,修改正确") else: print("元事件编辑信息:元事件属性" + Properties + "版本未变,修改错误")
def test_0602_exportExcel(self): ''' 人群包导出 2.简单分析导出 ''' url_part = self.dmp + "/metaevent/userBag" data = simpleanalysisdata print(data) print("简单分析") utils().postRequestForExport(url_part, Content_type="json", data=data, Token=self.Token)
def test_01_projectmodel(self): '''创建模型''' url_part = self.dmp + "/projectmodel" modelDictIds = utils().getDict(type="model_type", Token=self.Token) modelDictIds.pop() # for modelDictId in modelDictIds: data = { "code": "testETLCode24", "modelDictId": modelDictIds[0]['id'], "name": "testETLName24", "projectId": self.projectId } utils().postRequest(url_part, Content_type="json", data=data, Token=self.Token)
def setUpClass(cls): cls.UserAgent = localReadConfig.get_http("UserAgent") cls.userName = localReadConfig.get_http("userName") cls.password = localReadConfig.get_http("password") cls.nowtime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') cls.Token = utils().getToken()
def test_04_metaevent(self): '''创建元事件''' global sqlResult, metaEventData url_part = self.dmp + "/metaevent" # for i in range(1, 30): sqlResult = eventRecord().getSqlResult() metaEventProperties = [] keyList = list(self.propertyTypeDict.keys()) valueList = list(self.propertyTypeDict.values()) if self.eventName == "": for key in keyList: index = keyList.index(key) num = str(valueList[index]) next = "a" Properties = { "code": key + "test" + next, "name": key + "test" + next, "propertyType": str(num), "sortNumber": str(num) } metaEventProperties.append(Properties) data = { "metaEvent": { "code": sqlResult[0], "description": "description", "keywordRelation": "or", "name": sqlResult[1], "projectId": self.projectId, "typeId": eventType['id'], "version": 1.0 }, "metaEventKeywords": [{ "operateDictId": 0, "wordGroup": "短信,验证码" }, { "operateDictId": 0, "wordGroup": "操作,有效" }], "metaEventProperties": metaEventProperties } metaEventData = data print(metaEventData) utils().postRequest(url_part, Content_type="json", data=data, Token=self.Token)
def test_03_modelPage(self): '''修改模型''' url_part = self.dmp + "/projectmodel" data = { "code": "testETLCode", "createTime": modelPageList[0]['createTime'], "deleteFlag": modelPageList[0]['deleteFlag'], "id": modelPageList[0]['id'], "modelDictId": modelPageList[0]['modelDictId'], "name": "testETLName", #modelPageList[0]['name'], "projectId": self.projectId } utils().putOrDelRequest(option="put", url_part=url_part, Content_type="json", data=data, Token=self.Token)
def test_04_sample(self): '''取样''' global reportsourceList sampleCountList = ["", "1", "2000", "5000", "5001"] for sampleType in self.sampleTypeList: for sampleCount in sampleCountList: data = { "operateId": self.userId, "partitionDay": self.partitionDay, "projectId": self.projectId, "sampleCount": sampleCount, "sampleType": sampleType, "signName": self.signName } url_part = self.dmp + "-aly/sample" utils().getRequestForExport(url_part, data=data, Token=self.Token)
def setUpClass(cls): cls.projectId = localReadConfig.get_http("projectId") cls.projectId = localReadConfig.get_http("dmp") cls.projectCode = localReadConfig.get_http("projectCode") cls.database = localReadConfig.get_db("database1") cls.userTagCodes = [] #待选择的标签,如果不填,则默认选择20个code cls.nowtime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') cls.Token = utils().getToken()
def test_01_projectinfoPage(self): '''项目列表信息''' global project # 项目信息 project = "" url_part = self.dmp + "/projectinfo/page?current=1&size=20" projectinfoPageList = utils().getRequest(url_part, Token=self.Token) for projectinfo in projectinfoPageList['projectInfoPage']['records']: if str(projectinfo['id']) == self.projectId: project = projectinfo
def test_02_modelPage(self): '''模型管理分页查询''' global CalModel url_part = self.dmp + "/projectmodel/page?projectId=" + str( self.projectId) modelPageList = utils().getRequest(url_part, Token=self.Token) for model in modelPageList: if model['name'].find('testCAL') != -1: CalModel = model
def test_04_usertag(self): '''标签查询''' global userTagForExcel #用于Excel导出的标签数据 url_part = self.dmp + "/usertag/byprojectcode?projectCode=" + self.projectCode tags = utils().getRequest(url_part, Token=self.Token) for tag in tags: if tag['code'] == self.userTagCode: userTagForExcel = tag break
def test_02_userBag(self): '''创建分群''' tagLayerId = [] url_part = "/dmp/personprofile" sqlResult = userBag().getSqlResult() for userTagCode in userTagCodeList: tagLayerId.append(userTagCode['userTagLayerCompleteDTO'][0]['id']) tagLayerIds = ','.join('%s' % str(id) for id in tagLayerId) data = { "code": sqlResult[0], "name": sqlResult[1], "projectId": self.projectId, "tagLayerId": tagLayerIds } utils().postRequest(url_part, Content_type="json", data=data, Token=self.Token)
def setUpClass(cls): cls.projectId = localReadConfig.get_http("projectId") cls.database = localReadConfig.get_db("database2") cls.nowtime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') cls.beforetime = datetime.datetime.strftime( datetime.datetime.now() - datetime.timedelta(days=30), '%Y-%m-%d %H:%M:%S') cls.Token = utils().getToken()
def setUpClass(cls): cls.projectId = localReadConfig.get_http("projectId") cls.nowtime = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') cls.beforetime = datetime.datetime.strftime( datetime.datetime.now() - datetime.timedelta(days=30), '%Y-%m-%d %H:%M:%S') url = "http://pamir-gateway:9999/dmp/auth/token?app_id=admin&app_secret=123456" cls.Token = utils().getOtherToken(url=url)
def test_0103_exportExcel(self): ''' 人群包导出 签名+简单分析 ''' part = self.dmp + "/metaevent/userBag" data = { "projectCode": "test_tjj", "projectId": 1, "signName": "YY语音", "simpleAnalysis": "true", "startTime": "2019-08-08 00:00:00", "endTime": "2019-08-11 00:00:00", "metaEventCode": "", "statisticalCaliber": "" } url_part = part + utils.parse_url(data) print("签名+简单分析") utils().getRequestForExport(url_part, data=data, Token=self.Token)
def test_03_smschannel(self): '''添加短信通道''' global reportsourceList for reportsource in reportsourceList['records']: if reportsource['name'] == "测试分页": url_part = self.dmp + "/smschannel/" + str(reportsource['id']) reportsourceList = utils().putOrDelRequest(option="DELETE", url_part=url_part, Content_type="json", Token=self.Token)
def test_05_metaevent(self): ''' 查询元事件 1.根据分类ID查询元事件 2.根据元事件ID查询元事件详细信息''' global event, eventContent #元事件 url_part = self.dmp + "/metaevent/page?current=1&size=10&typeId=" + str( eventType['id']) requestData = utils().getRequest(url_part, Token=self.Token) if requestData: for data in requestData['records']: if data['name'] == sqlResult[1]: event = data break url_part = self.dmp + "/metaevent/info/" + str(event['id']) requestData = utils().getRequest(url_part, Token=self.Token) if requestData: eventContent = requestData
def test_0101_industrySave(self): ''' 新增行业:不重复Code ''' global usedData eventnum = industry().getSqlResult() # 查询行业信息 url_part = "/admin/industrysign/industry/save" # data = { # "code": "testSignCode" + str(int(eventnum)+1), # "name": "testSign" + str(int(eventnum)+1) # } data = { "code": "testSignCode" + str(int(eventnum) + 1), "name": "testSign" + str(int(eventnum) + 1) } usedData = data utils().postRequest(url_part, Content_type="json", data=data, Token=self.Token)