def generateNewTask(old_taskid): dbconnect = dbconnection() connection = dbconnect.connect() cursor = connection.cursor() print "Get old task name......" SQLCommand = " select top 1 task_name FROM [esgautomationdb].[dbo].[esg_test_task] where test_task_id=" + old_taskid + " order by test_task_id desc " cursor.execute(SQLCommand) oldtask_name = cursor.fetchone()[0] print "oldtask_name=" + oldtask_name task_name = oldtask_name + time.strftime("_%m%d%H%M%S") try: print "Create new task......" SQLCommand = "execute dbo.usp_esg_automation_new_task_insert 14, 1010, " + "'" + task_name + "'" + ", 'test', 1, 0, 0, 0, 1" cursor.execute(SQLCommand) cursor.commit() print "Get new task id......" SQLCommand = " select top 1 test_task_id FROM [esgautomationdb].[dbo].[esg_test_task] where task_name='" + task_name + "' order by test_task_id desc " cursor.execute(SQLCommand) taskid = str(cursor.fetchone()[0]) print "taskid=" + taskid print "Get old task case mapping list......" SQLCommand = "SELECT [id],[test_task_id],[test_case_id],[case_seq],[test_case_instance_id],[instance_seq] FROM [esgautomationdb].[dbo].[esg_test_task_case_mapping] where test_task_id=" + old_taskid cursor.execute(SQLCommand) rows = [] for row in cursor: print "row=", row rows.append(row) print "rows=", rows for row in rows: test_case_id = row[2] print "test_case_id=", str(test_case_id) print "---", type(test_case_id) print "---taskid=", type(taskid) case_seq = row[3] print "----case_seq=", type(case_seq) test_case_instance_id = row[4] print "----test_case_instance_id=", type(test_case_instance_id) instance_seq = row[5] print "----instance_seq=", type(instance_seq) print "insert new records to DB" SQLCommand = "insert into [esgautomationdb].[dbo].[esg_test_task_case_mapping](test_task_id,test_case_id,case_seq,test_case_instance_id,instance_seq) " \ "values (" + taskid + "," + str(test_case_id) + "," + str(case_seq) + "," + str( test_case_instance_id) + "," + str(instance_seq) + ")" print "SQLcOMMAND=", SQLCommand cursor.execute(SQLCommand) cursor.commit() except Exception as e: dbconnect.closeconnect() print "Execute SQL command failed. Exception -" + str(e) dbconnect.closeconnect() return taskid
def getTaskname(taskid): dbconnect = dbconnection() connection = dbconnect.connect() cursor = connection.cursor() try: print "Get Task name......" SQLCommand = " select top 1 task_name FROM [esgautomationdb].[dbo].[esg_test_task] where test_task_id=" + taskid + " order by test_task_id desc " cursor.execute(SQLCommand) task_name = cursor.fetchone()[0] print "Task_name=" + task_name except Exception as e: dbconnect.closeconnect() print "Execute SQL command failed. Exception -" + str(e) dbconnect.closeconnect() return task_name
def getCaseresultlist(taskid): logging.debug('Connect with db......') dic_case_result = {} list_dic_case_result = [] dbconnect = dbconnection() connection = dbconnect.connect() try: cursor = connection.cursor() print "Get task result list......" SQLCommand = "with log_automation_temp([id],[test_task_id],[test_case_id],[test_instance_id],[info_level] ,[result_content],[test_status])" \ "as" \ "(select [id],[test_task_id],[test_case_id],[test_instance_id],[info_level] ,[result_content],[test_status] " \ "from [esgautomationdb].[dbo].[log_automation] where test_task_id=" + taskid + " and info_level='case' and test_status in ('skip','pass','fail')) " \ "select b.test_case_id ,test_case_name,test_task_id,test_instance_id ,info_level,result_content,test_status " \ "from [esgautomationdb].[dbo].[esg_test_case] as a right join log_automation_temp as b on a.test_case_id = b.test_case_id order by id " logging.debug('Begin to search from DB......') cursor.execute(SQLCommand) rows = [] for row in cursor: # print "row=", row rows.append(row) # print "rows=", rows for row in rows: dic_case_result = {} dic_case_result[cons_test_case_id] = str(row[0]) dic_case_result[cons_test_case_name] = str(row[1]) dic_case_result[cons_test_task_id] = str(row[2]) dic_case_result[cons_test_instance_id] = str(row[3]) dic_case_result[cons_info_level] = str(row[4]) dic_case_result[cons_result_content] = str(row[5]) dic_case_result[cons_test_status] = str(row[6]) if dic_case_result[cons_result_content] != "": dic_case_result[cons_test_instance_name] = ( dic_case_result[cons_result_content].split(",")[1] ).split(":")[1] else: dic_case_result[cons_test_instance_name] = "" # print '3333333----------',dic_case_result list_dic_case_result.append(dic_case_result) except Exception as e: dbconnect.closeconnect() print "Execute SQL command failed. Exception -" + str(e) dbconnect.closeconnect() # print list_dic_case_result return list_dic_case_result
def generateNewTask(old_taskid): dbconnect = dbconnection() connection = dbconnect.connect() cursor = connection.cursor() print "Get old task name......" SQLCommand = " select top 1 task_name FROM [esgautomationdb].[dbo].[esg_test_task] where test_task_id=" + old_taskid + " order by test_task_id desc " cursor.execute(SQLCommand) oldtask_name = cursor.fetchone()[0] print "oldtask_name=" + oldtask_name task_name = oldtask_name + "_" + time.strftime( "%m%d%H%M%S") + "Re" + old_taskid try: print "******************************************" print "Get old task case mapping list......" SQLCommand = "exec dbo.usp_esg_automation_get_task_items " + old_taskid + " , 14" cursor.execute(SQLCommand) rows = [] for row in cursor: rows.append(row) taskitems_dic = { "test_module_id": 0, "path": "", "class_name": "", "method_name": "", "test_case_id": "", "test_case_name": "", "group_name": "", "case_seq": 0, "instance_ids": "", "disable_checks": "" } taskitemlist = [] for row in rows: taskitems_dic["test_module_id"] = row[0] taskitems_dic["path"] = row[1] taskitems_dic["class_name"] = row[2] taskitems_dic["method_name"] = row[3] taskitems_dic["test_case_id"] = str(row[4]) taskitems_dic["test_case_name"] = row[5] taskitems_dic["group_name"] = row[6] taskitems_dic["case_seq"] = row[7] taskitems_dic["instance_ids"] = row[8] taskitems_dic["disable_checks"] = row[9] # print "taskitems_dic=",taskitems_dic taskitemlist.append(taskitems_dic) taskitems_dic = { "test_module_id": 0, "path": "", "class_name": "", "method_name": "", "test_case_id": 0, "test_case_name": "", "group_name": "", "case_seq": 0, "instance_ids": "", "disable_checks": "" } print "=====================================" # print taskitemlist print "taskitemlist length=", len(taskitemlist) print "******************************************" print "Get old task failed case instance id list......" SQLCommand = "exec dbo.usp_esg_automation_get_failed_cases_from_log " + old_taskid cursor.execute(SQLCommand) failedinstanceid_list = [] for row in cursor: failedinstanceid_list.append(str(row)) print "failedinstanceid_list=", failedinstanceid_list if len(failedinstanceid_list) == 0: print "len(failedinstanceid_list) = ", len(failedinstanceid_list) return 0 print "******************************************" print "Get old task failed case mapping list......" taskitemfailed_list = [] for ins_id in failedinstanceid_list: ins_id = ins_id.replace("L,", "").strip("(").strip(")") for taskitem in taskitemlist: if ins_id in taskitem["instance_ids"]: taskitemfailed_list.append(taskitem) break # print "taskitemfailed_list=", taskitemfailed_list # print "length of taskitemfailed list=", len(taskitemfailed_list) print "******************************************" print "Get rerun instance id(not only failed instance id)......" ## Because one case may have many instances, if only fail one instance, all the other instances in this case also need to run reruninstanceids = "" for taskitem in taskitemfailed_list: if taskitem["instance_ids"] not in reruninstanceids: reruninstanceids = taskitem["instance_ids"] + reruninstanceids # print "reruninstanceid_list=", reruninstanceids reruninstanceids = reruninstanceids.strip(";") reruninstanceID_list = reruninstanceids.split(";") reruninstanceID_list_int = [] # print "reruninstanceID_list=", reruninstanceID_list for value in reruninstanceID_list: reruninstanceID_list_int.append(int(value)) # print "reruninstanceID_list_int=", reruninstanceID_list_int reruninstanceID_list_int.sort() print "reruninstanceID_list_int=", reruninstanceID_list_int print "******************************************" print "Get rerun case list(not only failed case list)......" reruncase_list = [] for ins_id in reruninstanceID_list_int: SQLCommand = "SELECT [id],[test_task_id],[test_case_id],[case_seq],[test_case_instance_id],[instance_seq] FROM [esgautomationdb].[dbo].[esg_test_task_case_mapping] where test_task_id=" + old_taskid + " and test_case_instance_id=" + str( ins_id) # print "SQLCOMMAND=", SQLCommand cursor.execute(SQLCommand) for row in cursor: reruncase_list.append(row) print "reruncase_list=", reruncase_list print "Create new task......" SQLCommand = "execute dbo.usp_esg_automation_new_task_insert 14, 1010, " + "'" + task_name + "'" + ", 'test', 1, 0, 0, 0, 1" cursor.execute(SQLCommand) cursor.commit() print "Get new task id......" SQLCommand = " select top 1 test_task_id FROM [esgautomationdb].[dbo].[esg_test_task] where task_name='" + task_name + "' order by test_task_id desc " cursor.execute(SQLCommand) taskid = str(cursor.fetchone()[0]) print "taskid=" + taskid print "******************************************" print "Insert rerun cases into new task......" for reruncase in reruncase_list: SQLCommand = "insert into [esgautomationdb].[dbo].[esg_test_task_case_mapping](test_task_id,test_case_id,case_seq,test_case_instance_id,instance_seq) " \ "values (" + taskid + "," + str(reruncase[2]) + "," + str(reruncase[3]) + "," + str( reruncase[4]) + "," + str(reruncase[5]) + ")" # print "SQLcOMMAND=", SQLCommand cursor.execute(SQLCommand) cursor.commit() except Exception as e: dbconnect.closeconnect() print "Execute SQL command failed. Exception -" + str(e) dbconnect.closeconnect() return taskid
def generateReruntask(old_taskid, new_taskid, pid): dbconnect = dbconnection() connection = dbconnect.connect() cursor = connection.cursor() try: print "******************************************" print "Get old task case mapping list......" SQLCommand = "exec dbo.usp_esg_automation_get_task_items " + old_taskid + " , 14" cursor.execute(SQLCommand) rows = [] # print "11111111111" for row in cursor: rows.append(row) taskitems_dic = { "test_module_id": 0, "path": "", "class_name": "", "method_name": "", "test_case_id": "", "test_case_name": "", "group_name": "", "case_seq": 0, "instance_ids": "", "disable_checks": "" } taskitemlist = [] for row in rows: taskitems_dic["test_module_id"] = row[0] taskitems_dic["path"] = row[1] taskitems_dic["class_name"] = row[2] taskitems_dic["method_name"] = row[3] taskitems_dic["test_case_id"] = str(row[4]) taskitems_dic["test_case_name"] = row[5] taskitems_dic["group_name"] = row[6] taskitems_dic["case_seq"] = row[7] taskitems_dic["instance_ids"] = row[8] taskitems_dic["disable_checks"] = row[9] # print "taskitems_dic=",taskitems_dic taskitemlist.append(taskitems_dic) taskitems_dic = { "test_module_id": 0, "path": "", "class_name": "", "method_name": "", "test_case_id": 0, "test_case_name": "", "group_name": "", "case_seq": 0, "instance_ids": "", "disable_checks": "" } print "=====================================" # print taskitemlist # print "taskitemlist length=",len(taskitemlist) print "******************************************" print "Get old task failed case mapping list......" SQLCommand = "exec dbo.usp_esg_automation_get_failed_cases_from_log " + old_taskid cursor.execute(SQLCommand) failedinstanceid_list = [] for row in cursor: failedinstanceid_list.append(str(row)) print "failedinstanceid_list=", failedinstanceid_list print "=====================================" print "******************************************" taskitemfailed_list = [] for ins_id in failedinstanceid_list: ins_id = ins_id.replace("L,", "").strip("(").strip(")") for taskitem in taskitemlist: if ins_id in taskitem["instance_ids"]: taskitemfailed_list.append(taskitem) break print "=====================================" taskitemfailed_list_removedup = [] for taskitem in taskitemfailed_list: if taskitem in taskitemfailed_list_removedup: continue else: taskitemfailed_list_removedup.append(taskitem) # if taskitem["instance_ids"].split(";" testcase_list = [] for item in taskitemfailed_list_removedup: if item["test_case_id"] not in testcase_list: testcase_list.append(item["test_case_id"]) # print "testcase_list=",testcase_list n_taskitemfailed_list = [] for case in testcase_list: for i, item in enumerate(taskitemfailed_list_removedup): if n_taskitemfailed_list == []: n_taskitemfailed_list.append(item) elif item["test_case_id"] == case: for j, item1 in enumerate(n_taskitemfailed_list): # print "case----", case # print "item1[test_case_id]-------", item1["test_case_id"] if case == item1["test_case_id"] and item[ "case_seq"] < n_taskitemfailed_list[j][ "case_seq"]: n_taskitemfailed_list.insert(j, item) break if case == item1["test_case_id"] and item[ "case_seq"] > n_taskitemfailed_list[j][ "case_seq"] and j == len( n_taskitemfailed_list) - 1: n_taskitemfailed_list.append(item) break elif j == len(n_taskitemfailed_list) - 1: n_taskitemfailed_list.append(item) break