示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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
示例#5
0
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