Bläddra i källkod

测试任务分配bug修改

刘凡 3 år sedan
förälder
incheckning
f29484371c
53 ändrade filer med 774 tillägg och 129 borttagningar
  1. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/.DS_Store
  2. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/TestLaboratory/.DS_Store
  3. 1 1
      TestLaboratory_ali_v1.3/TestLaboratory/TestLaboratory/settings.py
  4. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/apps/software/views/__pycache__/report.cpython-39.pyc
  5. 5 1
      TestLaboratory_ali_v1.3/TestLaboratory/apps/software/views/report.py
  6. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/apps/task/__pycache__/models.cpython-39.pyc
  7. 29 0
      TestLaboratory_ali_v1.3/TestLaboratory/apps/task/migrations/0003_auto_20220626_1630.py
  8. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/apps/task/migrations/__pycache__/0003_auto_20220626_1630.cpython-39.pyc
  9. 2 1
      TestLaboratory_ali_v1.3/TestLaboratory/apps/task/models.py
  10. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/__pycache__/caseview.cpython-39.pyc
  11. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/__pycache__/tasklistview.cpython-39.pyc
  12. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/__pycache__/taskview.cpython-39.pyc
  13. 1 1
      TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/caseview.py
  14. 29 30
      TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py
  15. 3 15
      TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/taskview.py
  16. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/__pycache__/rolecontrol.cpython-39.pyc
  17. 1 0
      TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py
  18. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/apps/user/views/__pycache__/userlistview.cpython-39.pyc
  19. 1 1
      TestLaboratory_ali_v1.3/TestLaboratory/apps/user/views/userlistview.py
  20. 14 0
      TestLaboratory_ali_v1.3/TestLaboratory/docker-compose.yml
  21. 1 1
      TestLaboratory_ali_v1.3/TestLaboratory/lims-frontend/nginx.conf
  22. 12 0
      TestLaboratory_ali_v1.3/TestLaboratory/logs/all-2022-06-20.log
  23. 548 0
      TestLaboratory_ali_v1.3/TestLaboratory/logs/all-2022-06-26.log
  24. 0 0
      TestLaboratory_ali_v1.3/TestLaboratory/logs/error-2022-06-20.log
  25. 0 0
      TestLaboratory_ali_v1.3/TestLaboratory/logs/error-2022-06-26.log
  26. 0 0
      TestLaboratory_ali_v1.3/TestLaboratory/logs/info-2022-06-20.log
  27. 0 0
      TestLaboratory_ali_v1.3/TestLaboratory/logs/info-2022-06-26.log
  28. 67 78
      TestLaboratory_ali_v1.3/TestLaboratory/mysql-init/TestLaboratory.sql
  29. 2 0
      TestLaboratory_ali_v1.3/TestLaboratory/mysql_restart.sh
  30. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/.DS_Store
  31. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/.DS_Store
  32. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_1/.DS_Store
  33. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_1/2022-06-26 11:41:18.561595/测试用例-未执行.xlsx
  34. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_1/2022-06-26 11:46:22.321678/测试用例-未执行.xlsx
  35. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_1/2022-06-26 11:46:30.446071/测试用例-已执行.xlsx
  36. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_2/2022-06-26 11:41:46.208533/测试用例-未执行.xlsx
  37. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_2/2022-06-26 11:46:46.185401/测试用例-已执行.xlsx
  38. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_5/2022-06-26 18:07:46.867181/测试用例-未执行.xlsx
  39. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_5/2022-06-26 18:08:46.885924/测试用例-未执行.xlsx
  40. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_5/2022-06-26 18:09:31.614506/测试用例-已执行.xlsx
  41. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_6/2022-06-26 18:08:53.033250/测试用例-未执行.xlsx
  42. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_6/2022-06-26 18:09:22.009593/测试用例-已执行.xlsx
  43. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_6/2022-06-26 18:10:01.518199/测试用例-已执行.xlsx
  44. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/case-template/.DS_Store
  45. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/case-template/测试用例-已执行.xlsx
  46. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/case-template/测试用例-未执行.xlsx
  47. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/plan-statement/TestLaboratory_V1_Task_2/2022-06-26 17:58:43.979114/测试用例模版.xlsx
  48. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/plan-statement/TestLaboratory_V1_Task_2/2022-06-26 17:59:45.141399/测试用例模版.xlsx
  49. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/plan-statement/TestLaboratory_V1_Task_2/2022-06-26 18:01:25.266843/测试用例模版.xlsx
  50. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/plan-statement/TestLaboratory_V1_Task_8/2022-06-26 18:00:31.150272/测试用例模版.xlsx
  51. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/report-tmp/测试报告表格-5.docx
  52. 58 0
      TestLaboratory_ali_v1.3/TestLaboratory/static/software/TestLaboratory_V1_Software_2/TestLaboratory_V1_Version_1/2022-06-26 11:24:31.750279/ospf_test2.json
  53. BIN
      TestLaboratory_ali_v1.3/TestLaboratory/static/task-statement/2022-06-26 16:49:10.355457/测试用例模版.xlsx

BIN
TestLaboratory_ali_v1.3/TestLaboratory/.DS_Store


BIN
TestLaboratory_ali_v1.3/TestLaboratory/TestLaboratory/.DS_Store


+ 1 - 1
TestLaboratory_ali_v1.3/TestLaboratory/TestLaboratory/settings.py

@@ -29,7 +29,7 @@ TASK_ROOT = 'static/task-statement/'
 CASE_TEMPLATE_ROOT = 'static/case-template/测试用例模版.xlsx'
 CASE_FILE_ROOT = 'static/case-file/'
 CASE_FILE_EXPORT = 'static/case-file-export/'
-HTTP_HEAD = 'http://112.124.117.37:8003/'
+HTTP_HEAD = 'http://172.26.0.14:8003/'
 
 
 # Quick-start development settings - unsuitable for production

BIN
TestLaboratory_ali_v1.3/TestLaboratory/apps/software/views/__pycache__/report.cpython-39.pyc


+ 5 - 1
TestLaboratory_ali_v1.3/TestLaboratory/apps/software/views/report.py

@@ -21,8 +21,12 @@ class Report(APIView):
             return HttpResponse(status=404, content='软件已删除或不存在')
         software = software[0]
 
+        executor_id = request.GET.get('executor_id')
+        if not executor_id:
+            logger.error("测试人员id不能为空")
+            return HttpResponse(status=404, content="测试人员id不能为空")
         cases_info = {}
-        cases = software.testcase_set.filter(delete=False)
+        cases = software.testcase_set.filter(executor_id=executor_id, delete=False)
         executors = set()
         if cases:
             for case in cases:

BIN
TestLaboratory_ali_v1.3/TestLaboratory/apps/task/__pycache__/models.cpython-39.pyc


+ 29 - 0
TestLaboratory_ali_v1.3/TestLaboratory/apps/task/migrations/0003_auto_20220626_1630.py

@@ -0,0 +1,29 @@
+# Generated by Django 3.2.4 on 2022-06-26 16:30
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('user', '0002_auto_20220619_1043'),
+        ('task', '0002_alter_testtask_id'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='testcase',
+            name='executor_id',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='user.user', verbose_name='执行者id'),
+        ),
+        migrations.RemoveField(
+            model_name='testtask',
+            name='executor',
+        ),
+        migrations.AddField(
+            model_name='testtask',
+            name='executor',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='user.user', verbose_name='测试任务执行者'),
+        ),
+    ]

BIN
TestLaboratory_ali_v1.3/TestLaboratory/apps/task/migrations/__pycache__/0003_auto_20220626_1630.cpython-39.pyc


+ 2 - 1
TestLaboratory_ali_v1.3/TestLaboratory/apps/task/models.py

@@ -10,7 +10,7 @@ class TestTask(models.Model):
     id = models.CharField(max_length=128, unique=True, primary_key=True, verbose_name='测试任务编号',
                           default='TestLaboratory_V1_Task_1')
     title = models.CharField(max_length=50, verbose_name='测试任务标题')
-    executor = models.ManyToManyField(User, verbose_name='测试任务执行者')
+    executor = models.ForeignKey(User, null=True, on_delete=models.CASCADE, verbose_name='测试任务执行者')
     # 0: 发布,release;(此阶段可以上传未执行的测试用例)1:执行测试用例,execute(此阶段需上传包含测试结果的测试用例);2:执行完成
     state = models.IntegerField(verbose_name='测试任务状态')
     description = models.TextField(verbose_name='测试任务描述')
@@ -41,6 +41,7 @@ class TestCase(models.Model):
                              default='TestLaboratory_V1_Task_1')
     id_in_task = models.CharField(max_length=30, verbose_name='在测试任务中编号', default='1')
     software = models.ForeignKey(Software, null=True, on_delete=models.CASCADE, verbose_name='测试软件')
+    executor_id = models.ForeignKey(User, null=True, on_delete=models.CASCADE, verbose_name='执行者id')
     version = models.CharField(max_length=30, null=True, verbose_name='软件版本')
     name = models.CharField(max_length=50, verbose_name='名称')
     state = models.IntegerField(verbose_name='状态')

BIN
TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/__pycache__/caseview.cpython-39.pyc


BIN
TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/__pycache__/tasklistview.cpython-39.pyc


BIN
TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/__pycache__/taskview.cpython-39.pyc


+ 1 - 1
TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/caseview.py

@@ -120,7 +120,7 @@ class CaseExecute(APIView):
         for i in range(len(case_infos)):
             case_info_list = case_infos[i]
 
-            cases_same_id = TestCase.objects.filter(software=task.plan.software,
+            cases_same_id = TestCase.objects.filter(id=task.id,
                                                     id_in_task=str(
                                                         case_info_list[0]),
                                                     delete=False)

+ 29 - 30
TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py

@@ -37,18 +37,15 @@ class TaskListView(APIView):
         if not plan:
             logger.error("测试计划已删除或不存在")
             return HttpResponse(status=404, content='测试计划已删除或不存在')
-        plan = plan[0]
 
-        task_id = get_id(TestTask, 'TestLaboratory_V1_Task_1')
-
-        # step7:创建文件的数据库字段
+        # step1:创建文件的数据库字段
         fids = ''
         file_paths = []
         file_ids = []
         for file in statement_files:
             create_time = update_time = datetime.datetime.now()
             try:
-                write_file(file, TASK_ROOT + "/" + task_id + "/" + str(create_time))
+                write_file(file, TASK_ROOT + "/" + str(create_time))
             except:
                 logger.error("文件上传失败")
                 return HttpResponse(status=500, content="文件上传失败")
@@ -57,7 +54,7 @@ class TaskListView(APIView):
 
             try:
                 file_new = FileManager.objects.create(id=id_file, category="plan_statement",
-                                                      path=task_id + "/" + str(create_time) + "/" + file.name,
+                                                      path=str(create_time) + "/" + file.name,
                                                       create_time=create_time,
                                                       update_time=update_time)
             except:
@@ -71,32 +68,34 @@ class TaskListView(APIView):
         task_files = {'case-template': CASE_TEMPLATE_ROOT, 'statement-fids': fids}
 
         create_time = update_time = datetime.datetime.now()
-        task = TestTask.objects.create(id=task_id, title=title, description=description, state=0, plan_id=plan_id,
-                                       statement_file=fids,
-                                       create_time=create_time, update_time=update_time)
-
-        executors = []
+        return_value = []
         for executor_id in executors_id:
             executor = User.objects.filter(id=executor_id, delete=False)
             if not executor:
                 logger.error("执行者用户不存在")
                 return HttpResponse(status=404, content='执行者用户不存在')
-            task.executor.add(executor[0])
-
-        executor, action, method = get_log(request)
-        gen_log(action, "测试任务", task.title, method, executor)
-        return Response({
-            'software_id': task.plan.software.id,
-            'software_name': task.plan.software.name,
-            'version': task.plan.version,
-            'id': task.id,
-            'title': title,
-            'description': description,
-            'state': 0,
-            'files': [{'file_id': id_file, 'file_name': file.name, 'file_url': HTTP_HEAD + file_path} for (id_file, file, file_path)
-                      in zip(file_ids, statement_files, file_paths)],
-            'case_template': HTTP_HEAD + CASE_TEMPLATE_ROOT
-        })
+
+            task_id = get_id(TestTask, 'TestLaboratory_V1_Task_1')
+            task = TestTask.objects.create(id=task_id, title=title, description=description, state=0, plan_id=plan_id,
+                                           statement_file=fids, executor_id=executor_id,
+                                           create_time=create_time, update_time=update_time)
+            executor, action, method = get_log(request)
+            gen_log(action, "测试任务", task.title, method, executor)
+            return_value.append({
+                'software_id': task.plan.software.id,
+                'software_name': task.plan.software.name,
+                'version': task.plan.version,
+                'id': task.id,
+                'executor_id': executor_id,
+                'title': title,
+                'description': description,
+                'state': 0,
+                'files': [{'file_id': id_file, 'file_name': file.name, 'file_url': HTTP_HEAD + file_path} for
+                          (id_file, file, file_path)
+                          in zip(file_ids, statement_files, file_paths)],
+                'case_template': HTTP_HEAD + CASE_TEMPLATE_ROOT
+            })
+        return Response(return_value)
 
     # view task_list
     @staticmethod
@@ -113,11 +112,10 @@ class TaskListView(APIView):
             task_all = task_all.filter(title__contains=title)
         if software_id:
             task_all = task_all.filter(plan__software__id=software_id)
-            # task_all = task_all.filter(software__id__contains=software_id)
         if state:
             task_all = task_all.filter(state=state)
         if executor_id:
-            task_all = task_all.filter(executor=executor_id)
+            task_all = task_all.filter(executor_id=executor_id)
         """
         sort=update_time, -update_time, create_time, -create_time, title, -title, state
         """
@@ -135,7 +133,8 @@ class TaskListView(APIView):
                 'software_id': task.plan.software.id,
                 'software_name': task.plan.software.name,
                 'version': task.plan.version,
-                'executor': [{'id': executor.id, 'name': executor.username} for executor in task.executor.all()],
+                # 'executor_id': task.executor_id,
+                'executor': {'id': task.executor.id, 'name': task.executor.username},
                 'plan_name': task.plan.title,
                 'id': task.id,
                 'title': task.title,

+ 3 - 15
TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/taskview.py

@@ -116,8 +116,7 @@ class TaskView(APIView):
                                file_sid, file_name, file_url in zip(task_sids, task_file_names, task_file_urls)],
                 'case_template': HTTP_HEAD + CASE_TEMPLATE_ROOT,
                 'case_file': case_file_info,
-                'executors': [{'id': executor.id, 'name': executor.username} for executor in
-                              task.executor.all()],
+                'executor': {'id': task.executor.id, 'name': task.executor.username},
                 'case_all': task.case_all,
                 'case_not_execute': task.case_not_execute,
                 'case_success': task.case_success,
@@ -140,12 +139,8 @@ class TaskEdit(APIView):
         state = request.POST.get('state')
         description = request.POST.get('description')
         files = request.FILES.getlist('files')
-        executors = request.POST.get('executors')
         edit_state_only = request.POST.get('edit_state_only')
 
-        if executors:
-            executors = executors.split('&&')
-
         task = TestTask.objects.filter(id=task_id, delete=False)
         if not task:
             logger.error("测试任务已删除或不存在")
@@ -164,14 +159,6 @@ class TaskEdit(APIView):
         if description:
             task.description = description
 
-        task.executor.clear()
-        for executor_id in executors:
-            executor = User.objects.filter(id=executor_id, delete=False)
-            if not executor:
-                logger.error("执行者用户不存在")
-                return HttpResponse(status=404, content='执行者用户不存在')
-            task.executor.add(executor[0])
-
         fids = ''
         for file in files:
             create_time = update_time = datetime.datetime.now()
@@ -198,8 +185,9 @@ class TaskEdit(APIView):
         fids = fids[:-2]
 
         task_sids = task.statement_file.split('&&')
+        print(task_sids)
 
-        if task_sids:
+        if task_sids is not None and task_sids[0] != '':
             for statement_id in task_sids:
                 statement = FileManager.objects.get(id=statement_id)
                 statement.delete = True

BIN
TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/__pycache__/rolecontrol.cpython-39.pyc


+ 1 - 0
TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py

@@ -38,6 +38,7 @@ class RoleControl(object):
         if path[-1] == '/':
             path = path[:-1]
         for per in permission:
+            print(per.url, path, re.fullmatch(per.url, path))
             if re.fullmatch(per.url, path):
                 match = True
                 break

BIN
TestLaboratory_ali_v1.3/TestLaboratory/apps/user/views/__pycache__/userlistview.cpython-39.pyc


+ 1 - 1
TestLaboratory_ali_v1.3/TestLaboratory/apps/user/views/userlistview.py

@@ -86,7 +86,7 @@ class UserListView(APIView):
                     'is_login': user.is_login
                 }]}
                 users_info.append(user_group)
-            if user.group in user_group_index:
+            else:
                 users_info[user_group_index[user.group]]['userList'].append({
                     'userid': user.id,
                     'username': user.username,

+ 14 - 0
TestLaboratory_ali_v1.3/TestLaboratory/docker-compose.yml

@@ -7,6 +7,9 @@ services:
       dockerfile: ./Dockerfile
     ports:
     - 8002:8002
+    networks:
+      lims_net:
+        ipv4_address: 172.26.0.13
   web:
     build: .
     command: python manage.py runserver 0.0.0.0:8003
@@ -16,6 +19,9 @@ services:
     - 8003:8003
     depends_on:
       - db
+    networks:
+      lims_net:
+        ipv4_address: 172.26.0.14
   db:
     image: mysql:8.0.26
     restart: always
@@ -31,7 +37,15 @@ services:
     volumes:
      # - data:/var/lib/mysql
       - ./mysql-init:/docker-entrypoint-initdb.d/
+    networks:
+      lims_net:
+        ipv4_address: 172.26.0.12
 
+networks:
+  lims_net:
+    ipam:
+      config:
+        - subnet: 172.26.0.0/16
   #  volumes:
  #     - ./db:/var/lib/mysql
 #      - ./mysql/init:/docker-entrypoint-initdb.d/

+ 1 - 1
TestLaboratory_ali_v1.3/TestLaboratory/lims-frontend/nginx.conf

@@ -94,7 +94,7 @@ http {
 	
 	location /api {
             #add_header  Cache-Control no-cache;
-            proxy_pass  http://112.124.117.37:8003/api;
+            proxy_pass  http://172.26.0.14:8003/api;
             proxy_read_timeout 120s;
             proxy_connect_timeout 180s;
             proxy_send_timeout 180s;

+ 12 - 0
TestLaboratory_ali_v1.3/TestLaboratory/logs/all-2022-06-20.log

@@ -0,0 +1,12 @@
+[INFO] [2022-06-20 12:15:52,203] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[INFO] [2022-06-20 12:16:15,461] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[ERROR] [2022-06-20 12:16:37,736] [userlistview.py:111] [userlistview:post] - 用户名或密码错误
+[ERROR] [2022-06-20 12:16:37,737] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/users/login
+[ERROR] [2022-06-20 12:16:37,738] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/users/login HTTP/1.1" 500 24
+[INFO] [2022-06-20 12:16:41,060] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/users/login HTTP/1.1" 200 303
+[ERROR] [2022-06-20 12:17:02,353] [userview.py:54] [userview:post] - 用户不存在
+[WARNING] [2022-06-20 12:17:02,355] [log.py:224] [log:log_response] - Not Found: /api/v1/users/TestLaboratory_V1_User_10/edit
+[WARNING] [2022-06-20 12:17:02,355] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/users/TestLaboratory_V1_User_10/edit HTTP/1.1" 404 15
+[INFO] [2022-06-20 12:17:07,822] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/users/TestLaboratory_V1_User_4/edit HTTP/1.1" 200 15
+[INFO] [2022-06-20 12:25:15,393] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py changed, reloading.
+[INFO] [2022-06-20 12:25:15,706] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader

+ 548 - 0
TestLaboratory_ali_v1.3/TestLaboratory/logs/all-2022-06-26.log

@@ -0,0 +1,548 @@
+[INFO] [2022-06-26 11:16:49,280] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[WARNING] [2022-06-26 11:20:26,894] [log.py:224] [log:log_response] - Not Found: /api/v1/api/v1/test-tasks/
+[WARNING] [2022-06-26 11:20:26,894] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/api/v1/test-tasks/ HTTP/1.1" 404 2876
+[INFO] [2022-06-26 11:21:37,168] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-plans HTTP/1.1" 301 0
+[WARNING] [2022-06-26 11:21:37,172] [log.py:224] [log:log_response] - Forbidden: /api/v1/test-plans/
+[WARNING] [2022-06-26 11:21:37,173] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-plans/ HTTP/1.1" 403 37
+[INFO] [2022-06-26 11:22:03,305] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-plans HTTP/1.1" 301 0
+[INFO] [2022-06-26 11:22:03,324] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-plans/ HTTP/1.1" 200 2
+[ERROR] [2022-06-26 11:22:31,094] [planlistview.py:40] [planlistview:post] - 软件已删除或不存在
+[WARNING] [2022-06-26 11:22:31,095] [log.py:224] [log:log_response] - Not Found: /api/v1/test-plans/
+[WARNING] [2022-06-26 11:22:31,095] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-plans/ HTTP/1.1" 404 27
+[ERROR] [2022-06-26 11:22:43,221] [planlistview.py:47] [planlistview:post] - 软件版本不存在或已删除,请重新选择
+[WARNING] [2022-06-26 11:22:43,222] [log.py:224] [log:log_response] - Not Found: /api/v1/test-plans/
+[WARNING] [2022-06-26 11:22:43,222] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-plans/ HTTP/1.1" 404 51
+[INFO] [2022-06-26 11:23:31,979] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/software HTTP/1.1" 301 0
+[INFO] [2022-06-26 11:23:31,995] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/software/ HTTP/1.1" 200 148
+[WARNING] [2022-06-26 11:24:07,198] [log.py:224] [log:log_response] - Forbidden: /api/v1/software/
+[WARNING] [2022-06-26 11:24:07,198] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/software/ HTTP/1.1" 403 37
+[ERROR] [2022-06-26 11:24:24,101] [softwarelistview.py:31] [softwarelistview:post] - 软件上传失败
+[WARNING] [2022-06-26 11:24:24,112] [log.py:224] [log:log_response] - Not Found: /api/v1/software/
+[WARNING] [2022-06-26 11:24:24,113] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/software/ HTTP/1.1" 404 18
+[INFO] [2022-06-26 11:24:31,781] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/software/ HTTP/1.1" 200 185
+[WARNING] [2022-06-26 11:25:46,503] [log.py:224] [log:log_response] - Forbidden: /api/v1/software/TestLaboratory_V1_Software_2
+[WARNING] [2022-06-26 11:25:46,503] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/software/TestLaboratory_V1_Software_2 HTTP/1.1" 403 43
+[INFO] [2022-06-26 11:26:06,592] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/software/TestLaboratory_V1_Software_2 HTTP/1.1" 200 508
+[INFO] [2022-06-26 11:27:12,820] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-plans/ HTTP/1.1" 200 305
+[INFO] [2022-06-26 11:27:35,652] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-plans HTTP/1.1" 301 0
+[INFO] [2022-06-26 11:27:35,670] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-plans/ HTTP/1.1" 200 372
+[INFO] [2022-06-26 11:28:07,328] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-plans/TestLaboratory_V1_Plan_1 HTTP/1.1" 200 397
+[WARNING] [2022-06-26 11:28:42,026] [log.py:224] [log:log_response] - Forbidden: /api/v1/test-tasks/
+[WARNING] [2022-06-26 11:28:42,045] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/ HTTP/1.1" 403 37
+[WARNING] [2022-06-26 11:28:58,588] [log.py:224] [log:log_response] - Forbidden: /api/v1/test-tasks/
+[WARNING] [2022-06-26 11:28:58,604] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/ HTTP/1.1" 403 37
+[INFO] [2022-06-26 11:29:02,536] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-plans/TestLaboratory_V1_Plan_1 HTTP/1.1" 200 397
+[INFO] [2022-06-26 11:29:31,862] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/ HTTP/1.1" 200 345
+[INFO] [2022-06-26 11:30:00,777] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/ HTTP/1.1" 200 332
+[INFO] [2022-06-26 11:30:33,062] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/ HTTP/1.1" 200 954
+[WARNING] [2022-06-26 11:41:06,617] [log.py:224] [log:log_response] - Not Found: /api/v1/api/v1/test-tasks/TestLaboratory_V1_Task_1/case-file/execute
+[WARNING] [2022-06-26 11:41:06,618] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/api/v1/test-tasks/TestLaboratory_V1_Task_1/case-file/execute HTTP/1.1" 404 3002
+[INFO] [2022-06-26 11:41:18,616] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_1/case-file/execute HTTP/1.1" 200 512
+[INFO] [2022-06-26 11:41:46,286] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_2/case-file/execute HTTP/1.1" 200 512
+[WARNING] [2022-06-26 11:45:09,650] [log.py:224] [log:log_response] - Method Not Allowed: /api/v1/test-tasks/TestLaboratory_V1_Task_1
+[WARNING] [2022-06-26 11:45:09,668] [basehttp.py:161] [basehttp:log_message] - "PUT /api/v1/test-tasks/TestLaboratory_V1_Task_1 HTTP/1.1" 405 40
+[WARNING] [2022-06-26 11:45:18,057] [log.py:224] [log:log_response] - Method Not Allowed: /api/v1/test-tasks/TestLaboratory_V1_Task_1
+[WARNING] [2022-06-26 11:45:18,058] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_1 HTTP/1.1" 405 41
+[INFO] [2022-06-26 11:45:58,576] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_1/edit HTTP/1.1" 200 15
+[ERROR] [2022-06-26 11:46:22,332] [caseview.py:110] [caseview:post] - ['测试任务已审核通过,第4行实际结果不能为空', '第4行执行人不能为空', '测试任务已审核通过,第5行实际结果不能为空', '第5行执行人不能为空', '测试任务已审核通过,第6行实际结果不能为空', '第6行执行人不能为空', '测试任务已审核通过,第7行实际结果不能为空', '第7行执行人不能为空', '测试任务已审核通过,第8行实际结果不能为空', '第8行执行人不能为空', '测试任务已审核通过,第9行实际结果不能为空', '第9行执行人不能为空']
+[INFO] [2022-06-26 11:46:22,333] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_1/case-file/execute HTTP/1.1" 200 609
+[INFO] [2022-06-26 11:46:30,501] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_1/case-file/execute HTTP/1.1" 200 512
+[INFO] [2022-06-26 11:46:38,523] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_2/edit HTTP/1.1" 200 15
+[INFO] [2022-06-26 11:46:46,240] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_2/case-file/execute HTTP/1.1" 200 512
+[INFO] [2022-06-26 16:26:34,512] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/models.py changed, reloading.
+[INFO] [2022-06-26 16:26:34,801] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[INFO] [2022-06-26 16:27:08,745] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/models.py changed, reloading.
+[INFO] [2022-06-26 16:27:09,039] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[INFO] [2022-06-26 16:30:09,656] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/models.py changed, reloading.
+[INFO] [2022-06-26 16:30:09,953] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[INFO] [2022-06-26 16:45:43,218] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[ERROR] [2022-06-26 16:46:04,101] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/test-tasks/
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py", line 49, in __call__
+    return self.func(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py", line 84, in post
+    task.executor.add(executor[0])
+AttributeError: 'User' object has no attribute 'add'
+[ERROR] [2022-06-26 16:46:04,103] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/ HTTP/1.1" 500 101512
+[INFO] [2022-06-26 16:46:45,824] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py changed, reloading.
+[INFO] [2022-06-26 16:46:46,099] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[INFO] [2022-06-26 16:46:49,749] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/ HTTP/1.1" 200 749
+[INFO] [2022-06-26 16:47:20,069] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/ HTTP/1.1" 200 749
+[INFO] [2022-06-26 16:48:42,393] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py changed, reloading.
+[INFO] [2022-06-26 16:48:42,691] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[INFO] [2022-06-26 16:49:10,390] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/ HTTP/1.1" 200 1127
+[INFO] [2022-06-26 16:49:52,889] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-plans HTTP/1.1" 301 0
+[INFO] [2022-06-26 16:49:52,910] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-plans/ HTTP/1.1" 200 372
+[ERROR] [2022-06-26 16:50:09,895] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/test-tasks/
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py", line 49, in __call__
+    return self.func(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py", line 136, in get
+    'executor': [{'id': executor.id, 'name': executor.username} for executor in task.executor.all()],
+AttributeError: 'User' object has no attribute 'all'
+[ERROR] [2022-06-26 16:50:09,898] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/ HTTP/1.1" 500 98707
+[INFO] [2022-06-26 16:50:30,406] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py changed, reloading.
+[INFO] [2022-06-26 16:50:30,728] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[ERROR] [2022-06-26 16:50:36,014] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/test-tasks/
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py", line 49, in __call__
+    return self.func(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py", line 136, in get
+    'executor': [{'id': executor.id, 'name': executor.username} for executor in task.executor.all()],
+AttributeError: 'User' object has no attribute 'all'
+[ERROR] [2022-06-26 16:50:36,017] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/ HTTP/1.1" 500 98707
+[INFO] [2022-06-26 16:51:53,862] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py changed, reloading.
+[INFO] [2022-06-26 16:51:54,159] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[ERROR] [2022-06-26 16:51:56,866] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/test-tasks/
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py", line 49, in __call__
+    return self.func(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py", line 136, in get
+    'executor': {'id': task.executor.id, 'name': task.executor.username},
+AttributeError: 'NoneType' object has no attribute 'id'
+[ERROR] [2022-06-26 16:51:56,869] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/ HTTP/1.1" 500 103856
+[INFO] [2022-06-26 16:52:17,118] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py changed, reloading.
+[INFO] [2022-06-26 16:52:17,398] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[ERROR] [2022-06-26 16:52:18,998] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/test-tasks/
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py", line 49, in __call__
+    return self.func(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py", line 136, in get
+    'executor': {'id': task.user.id, 'name': task.user.username},
+AttributeError: 'TestTask' object has no attribute 'user'
+[ERROR] [2022-06-26 16:52:19,001] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/ HTTP/1.1" 500 98665
+[ERROR] [2022-06-26 16:54:09,024] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/test-tasks/
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py", line 49, in __call__
+    return self.func(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py", line 136, in get
+    'executor': {'id': task.user.id, 'name': task.user.username},
+AttributeError: 'TestTask' object has no attribute 'user'
+[ERROR] [2022-06-26 16:54:09,027] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/ HTTP/1.1" 500 98665
+[ERROR] [2022-06-26 16:54:19,013] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/test-tasks/
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py", line 49, in __call__
+    return self.func(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py", line 136, in get
+    'executor': {'id': task.user.id, 'name': task.user.username},
+AttributeError: 'TestTask' object has no attribute 'user'
+[ERROR] [2022-06-26 16:54:19,015] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/ HTTP/1.1" 500 98665
+[ERROR] [2022-06-26 16:54:20,074] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/test-tasks/
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py", line 49, in __call__
+    return self.func(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py", line 136, in get
+    'executor': {'id': task.user.id, 'name': task.user.username},
+AttributeError: 'TestTask' object has no attribute 'user'
+[ERROR] [2022-06-26 16:54:20,079] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/ HTTP/1.1" 500 98665
+[INFO] [2022-06-26 16:54:41,011] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[ERROR] [2022-06-26 16:54:43,250] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/test-tasks/
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py", line 49, in __call__
+    return self.func(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py", line 136, in get
+    'executor': {'id': task.user.id, 'name': task.user.username},
+AttributeError: 'TestTask' object has no attribute 'user'
+[ERROR] [2022-06-26 16:54:43,251] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/ HTTP/1.1" 500 98665
+[INFO] [2022-06-26 16:56:22,780] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py changed, reloading.
+[INFO] [2022-06-26 16:56:22,987] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[INFO] [2022-06-26 16:56:25,123] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/ HTTP/1.1" 200 3236
+[INFO] [2022-06-26 16:56:55,324] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py changed, reloading.
+[INFO] [2022-06-26 16:56:55,533] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[INFO] [2022-06-26 16:56:57,217] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/ HTTP/1.1" 200 3578
+[INFO] [2022-06-26 17:00:59,337] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py changed, reloading.
+[INFO] [2022-06-26 17:00:59,645] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[INFO] [2022-06-26 17:01:04,001] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py changed, reloading.
+[INFO] [2022-06-26 17:01:04,213] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[ERROR] [2022-06-26 17:01:06,200] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/test-tasks/
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py", line 49, in __call__
+    return self.func(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py", line 137, in get
+    'executor': {'id': task.user.id, 'name': task.user.username},
+AttributeError: 'TestTask' object has no attribute 'user'
+[ERROR] [2022-06-26 17:01:06,205] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/ HTTP/1.1" 500 98708
+[INFO] [2022-06-26 17:02:02,392] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py changed, reloading.
+[INFO] [2022-06-26 17:02:02,691] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[INFO] [2022-06-26 17:02:32,874] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/tasklistview.py changed, reloading.
+[INFO] [2022-06-26 17:02:33,090] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[INFO] [2022-06-26 17:02:34,843] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/ HTTP/1.1" 200 3788
+[WARNING] [2022-06-26 17:50:45,249] [log.py:224] [log:log_response] - Forbidden: /api/v1/test-tasks/TestLaboratory_V1_Task_9
+[WARNING] [2022-06-26 17:50:45,249] [basehttp.py:161] [basehttp:log_message] - "DELETE /api/v1/test-tasks/TestLaboratory_V1_Task_9 HTTP/1.1" 403 43
+[INFO] [2022-06-26 17:51:17,504] [basehttp.py:161] [basehttp:log_message] - "DELETE /api/v1/test-tasks/TestLaboratory_V1_Task_9 HTTP/1.1" 200 12
+[ERROR] [2022-06-26 17:52:51,935] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/test-tasks/TestLaboratory_V1_Task_8
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py", line 49, in __call__
+    return self.func(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/taskview.py", line 120, in get
+    task.executor.all()],
+AttributeError: 'User' object has no attribute 'all'
+[ERROR] [2022-06-26 17:52:51,937] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/TestLaboratory_V1_Task_8 HTTP/1.1" 500 101090
+[INFO] [2022-06-26 17:53:20,046] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/taskview.py changed, reloading.
+[INFO] [2022-06-26 17:53:20,359] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[INFO] [2022-06-26 17:53:21,256] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/TestLaboratory_V1_Task_8 HTTP/1.1" 200 1191
+[INFO] [2022-06-26 17:54:05,724] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/taskview.py changed, reloading.
+[INFO] [2022-06-26 17:54:06,053] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[INFO] [2022-06-26 17:54:06,786] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/TestLaboratory_V1_Task_8 HTTP/1.1" 200 1190
+[INFO] [2022-06-26 17:57:42,992] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/taskview.py changed, reloading.
+[INFO] [2022-06-26 17:57:43,289] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[ERROR] [2022-06-26 17:58:03,744] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/test-tasks/TestLaboratory_V1_Task_2/edit
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py", line 49, in __call__
+    return self.func(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/taskview.py", line 191, in post
+    statement = FileManager.objects.get(id=statement_id)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/db/models/manager.py", line 85, in manager_method
+    return getattr(self.get_queryset(), name)(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/db/models/query.py", line 435, in get
+    raise self.model.DoesNotExist(
+apps.file.models.FileManager.DoesNotExist: FileManager matching query does not exist.
+[ERROR] [2022-06-26 17:58:03,746] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_2/edit HTTP/1.1" 500 109091
+[ERROR] [2022-06-26 17:58:44,013] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/test-tasks/TestLaboratory_V1_Task_2/edit
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py", line 49, in __call__
+    return self.func(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/taskview.py", line 191, in post
+    statement = FileManager.objects.get(id=statement_id)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/db/models/manager.py", line 85, in manager_method
+    return getattr(self.get_queryset(), name)(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/db/models/query.py", line 435, in get
+    raise self.model.DoesNotExist(
+apps.file.models.FileManager.DoesNotExist: FileManager matching query does not exist.
+[ERROR] [2022-06-26 17:58:44,015] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_2/edit HTTP/1.1" 500 110927
+[INFO] [2022-06-26 17:59:42,684] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/taskview.py changed, reloading.
+[INFO] [2022-06-26 17:59:42,959] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[ERROR] [2022-06-26 17:59:45,221] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/test-tasks/TestLaboratory_V1_Task_2/edit
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/user/middleware/rolecontrol.py", line 49, in __call__
+    return self.func(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/taskview.py", line 192, in post
+    statement = FileManager.objects.get(id=statement_id)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/db/models/manager.py", line 85, in manager_method
+    return getattr(self.get_queryset(), name)(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/db/models/query.py", line 435, in get
+    raise self.model.DoesNotExist(
+apps.file.models.FileManager.DoesNotExist: FileManager matching query does not exist.
+[ERROR] [2022-06-26 17:59:45,224] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_2/edit HTTP/1.1" 500 110997
+[INFO] [2022-06-26 18:00:31,160] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_8/edit HTTP/1.1" 200 15
+[INFO] [2022-06-26 18:01:19,499] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/taskview.py changed, reloading.
+[INFO] [2022-06-26 18:01:19,791] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[INFO] [2022-06-26 18:01:25,300] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_2/edit HTTP/1.1" 200 15
+[INFO] [2022-06-26 18:04:15,661] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/ HTTP/1.1" 200 3350
+[ERROR] [2022-06-26 18:07:46,889] [caseview.py:110] [caseview:post] - ['软件名称错误']
+[INFO] [2022-06-26 18:07:46,889] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_5/case-file/execute HTTP/1.1" 200 49
+[INFO] [2022-06-26 18:08:46,948] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_5/case-file/execute HTTP/1.1" 200 512
+[INFO] [2022-06-26 18:08:53,097] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_6/case-file/execute HTTP/1.1" 200 512
+[INFO] [2022-06-26 18:09:11,588] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_5/edit HTTP/1.1" 200 15
+[ERROR] [2022-06-26 18:09:22,017] [caseview.py:110] [caseview:post] - ['测试任务未审核通过,第4行实际结果需为空', '当前测试任务状态为未执行,第4行状态只能填写"未执行"', '测试任务未审核通过,第5行实际结果需为空', '当前测试任务状态为未执行,第5行状态只能填写"未执行"', '测试任务未审核通过,第6行实际结果需为空', '当前测试任务状态为未执行,第6行状态只能填写"未执行"', '测试任务未审核通过,第7行实际结果需为空', '当前测试任务状态为未执行,第7行状态只能填写"未执行"', '测试任务未审核通过,第8行实际结果需为空', '当前测试任务状态为未执行,第8行状态只能填写"未执行"', '测试任务未审核通过,第9行实际结果需为空', '当前测试任务状态为未执行,第9行状态只能填写"未执行"']
+[INFO] [2022-06-26 18:09:22,018] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_6/case-file/execute HTTP/1.1" 200 885
+[INFO] [2022-06-26 18:09:31,681] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_5/case-file/execute HTTP/1.1" 200 512
+[INFO] [2022-06-26 18:09:53,746] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_6/edit HTTP/1.1" 200 15
+[INFO] [2022-06-26 18:10:01,578] [basehttp.py:161] [basehttp:log_message] - "POST /api/v1/test-tasks/TestLaboratory_V1_Task_6/case-file/execute HTTP/1.1" 200 512
+[INFO] [2022-06-26 19:31:39,062] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/?executor_id=TestLaboratory_V1_User_1 HTTP/1.1" 200 2518
+[INFO] [2022-06-26 19:32:03,339] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/test-tasks/?executor_id=TestLaboratory_V1_User_2 HTTP/1.1" 200 833
+[INFO] [2022-06-26 20:14:32,660] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/task/views/caseview.py changed, reloading.
+[INFO] [2022-06-26 20:14:32,990] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[ERROR] [2022-06-26 20:18:14,340] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/software/TestLaboratory_V1_Software_1/report
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/software/views/report.py", line 61, in get
+    version_number = software.version_set.order_by('-create_time')[0].number
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/db/models/query.py", line 318, in __getitem__
+    return qs._result_cache[0]
+IndexError: list index out of range
+[ERROR] [2022-06-26 20:18:14,344] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/software/TestLaboratory_V1_Software_1/report HTTP/1.1" 500 96535
+[ERROR] [2022-06-26 20:19:23,099] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/software/TestLaboratory_V1_Software_1/report
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/software/views/report.py", line 61, in get
+    version_number = software.version_set.order_by('-create_time')[0].number
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/db/models/query.py", line 318, in __getitem__
+    return qs._result_cache[0]
+IndexError: list index out of range
+[ERROR] [2022-06-26 20:19:23,105] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/software/TestLaboratory_V1_Software_1/report HTTP/1.1" 500 96535
+[INFO] [2022-06-26 20:19:30,644] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/software/TestLaboratory_V1_Software_2/report HTTP/1.1" 200 32457
+[ERROR] [2022-06-26 20:19:47,454] [log.py:224] [log:log_response] - Internal Server Error: /api/v1/software/TestLaboratory_V1_Software_1/report
+Traceback (most recent call last):
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
+    response = get_response(request)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "/Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/software/views/report.py", line 61, in get
+    version_number = software.version_set.order_by('-create_time')[0].number
+  File "/Users/liufan/program/software/python/miniforge3/lib/python3.9/site-packages/django/db/models/query.py", line 318, in __getitem__
+    return qs._result_cache[0]
+IndexError: list index out of range
+[ERROR] [2022-06-26 20:19:47,456] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/software/TestLaboratory_V1_Software_1/report HTTP/1.1" 500 96535
+[INFO] [2022-06-26 20:24:00,164] [autoreload.py:251] [autoreload:trigger_reload] - /Users/liufan/program/PYTHON/TestLaboratoryGit/lims-backend/TestLaboratory_ali_v1.3/TestLaboratory/apps/software/views/report.py changed, reloading.
+[INFO] [2022-06-26 20:24:00,492] [autoreload.py:637] [autoreload:run_with_reloader] - Watching for file changes with StatReloader
+[ERROR] [2022-06-26 20:24:48,020] [report.py:26] [report:get] - 测试人员id不能为空
+[WARNING] [2022-06-26 20:24:48,022] [log.py:224] [log:log_response] - Not Found: /api/v1/software/TestLaboratory_V1_Software_2/report
+[WARNING] [2022-06-26 20:24:48,022] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/software/TestLaboratory_V1_Software_2/report HTTP/1.1" 404 26
+[INFO] [2022-06-26 20:24:51,427] [basehttp.py:161] [basehttp:log_message] - "GET /api/v1/software/TestLaboratory_V1_Software_2/report?executor_id=TestLaboratory_V1_User_2 HTTP/1.1" 200 28594

+ 0 - 0
TestLaboratory_ali_v1.3/TestLaboratory/logs/error-2022-06-20.log


+ 0 - 0
TestLaboratory_ali_v1.3/TestLaboratory/logs/error-2022-06-26.log


+ 0 - 0
TestLaboratory_ali_v1.3/TestLaboratory/logs/info-2022-06-20.log


+ 0 - 0
TestLaboratory_ali_v1.3/TestLaboratory/logs/info-2022-06-26.log


+ 67 - 78
TestLaboratory_ali_v1.3/TestLaboratory/mysql-init/TestLaboratory.sql

@@ -1,17 +1,17 @@
 /*
  Navicat Premium Data Transfer
 
- Source Server         : 112.124.117.37_33061
+ Source Server         : localhost_3306
  Source Server Type    : MySQL
- Source Server Version : 80026
- Source Host           : 112.124.117.37:33061
+ Source Server Version : 80029
+ Source Host           : localhost:3306
  Source Schema         : TestLaboratory
 
  Target Server Type    : MySQL
- Target Server Version : 80026
+ Target Server Version : 80029
  File Encoding         : 65001
 
- Date: 26/02/2022 21:01:15
+ Date: 20/06/2022 13:11:57
 */
 
 SET NAMES utf8mb4;
@@ -278,36 +278,42 @@ CREATE TABLE `django_migrations` (
   `name` varchar(255) NOT NULL,
   `applied` datetime(6) NOT NULL,
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
+) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
 -- ----------------------------
 -- Records of django_migrations
 -- ----------------------------
 BEGIN;
-INSERT INTO `django_migrations` VALUES (1, 'contenttypes', '0001_initial', '2021-09-26 11:46:30.839866');
-INSERT INTO `django_migrations` VALUES (2, 'auth', '0001_initial', '2021-09-26 11:46:31.316236');
-INSERT INTO `django_migrations` VALUES (3, 'admin', '0001_initial', '2021-09-26 11:46:31.442320');
-INSERT INTO `django_migrations` VALUES (4, 'admin', '0002_logentry_remove_auto_add', '2021-09-26 11:46:31.454642');
-INSERT INTO `django_migrations` VALUES (5, 'admin', '0003_logentry_add_action_flag_choices', '2021-09-26 11:46:31.464511');
-INSERT INTO `django_migrations` VALUES (6, 'contenttypes', '0002_remove_content_type_name', '2021-09-26 11:46:31.550289');
-INSERT INTO `django_migrations` VALUES (7, 'auth', '0002_alter_permission_name_max_length', '2021-09-26 11:46:31.602592');
-INSERT INTO `django_migrations` VALUES (8, 'auth', '0003_alter_user_email_max_length', '2021-09-26 11:46:31.628007');
-INSERT INTO `django_migrations` VALUES (9, 'auth', '0004_alter_user_username_opts', '2021-09-26 11:46:31.638972');
-INSERT INTO `django_migrations` VALUES (10, 'auth', '0005_alter_user_last_login_null', '2021-09-26 11:46:31.685119');
-INSERT INTO `django_migrations` VALUES (11, 'auth', '0006_require_contenttypes_0002', '2021-09-26 11:46:31.689748');
-INSERT INTO `django_migrations` VALUES (12, 'auth', '0007_alter_validators_add_error_messages', '2021-09-26 11:46:31.699915');
-INSERT INTO `django_migrations` VALUES (13, 'auth', '0008_alter_user_username_max_length', '2021-09-26 11:46:31.756737');
-INSERT INTO `django_migrations` VALUES (14, 'auth', '0009_alter_user_last_name_max_length', '2021-09-26 11:46:31.813745');
-INSERT INTO `django_migrations` VALUES (15, 'auth', '0010_alter_group_name_max_length', '2021-09-26 11:46:31.836562');
-INSERT INTO `django_migrations` VALUES (16, 'auth', '0011_update_proxy_permissions', '2021-09-26 11:46:31.847753');
-INSERT INTO `django_migrations` VALUES (17, 'auth', '0012_alter_user_first_name_max_length', '2021-09-26 11:46:31.899452');
-INSERT INTO `django_migrations` VALUES (18, 'file', '0001_initial', '2021-09-26 11:46:31.927327');
-INSERT INTO `django_migrations` VALUES (19, 'log', '0001_initial', '2021-09-26 11:46:31.962105');
-INSERT INTO `django_migrations` VALUES (20, 'user', '0001_initial', '2021-09-26 11:46:32.278426');
-INSERT INTO `django_migrations` VALUES (21, 'software', '0001_initial', '2021-09-26 11:46:32.376894');
-INSERT INTO `django_migrations` VALUES (22, 'plan', '0001_initial', '2021-09-26 11:46:32.496153');
-INSERT INTO `django_migrations` VALUES (23, 'sessions', '0001_initial', '2021-09-26 11:46:32.535313');
-INSERT INTO `django_migrations` VALUES (24, 'task', '0001_initial', '2021-09-26 11:46:32.864781');
+INSERT INTO `django_migrations` VALUES (1, 'contenttypes', '0001_initial', '2022-06-19 10:44:32.394371');
+INSERT INTO `django_migrations` VALUES (2, 'auth', '0001_initial', '2022-06-19 10:44:32.487851');
+INSERT INTO `django_migrations` VALUES (3, 'admin', '0001_initial', '2022-06-19 10:44:32.512785');
+INSERT INTO `django_migrations` VALUES (4, 'admin', '0002_logentry_remove_auto_add', '2022-06-19 10:44:32.517001');
+INSERT INTO `django_migrations` VALUES (5, 'admin', '0003_logentry_add_action_flag_choices', '2022-06-19 10:44:32.521252');
+INSERT INTO `django_migrations` VALUES (6, 'contenttypes', '0002_remove_content_type_name', '2022-06-19 10:44:32.537446');
+INSERT INTO `django_migrations` VALUES (7, 'auth', '0002_alter_permission_name_max_length', '2022-06-19 10:44:32.549952');
+INSERT INTO `django_migrations` VALUES (8, 'auth', '0003_alter_user_email_max_length', '2022-06-19 10:44:32.559319');
+INSERT INTO `django_migrations` VALUES (9, 'auth', '0004_alter_user_username_opts', '2022-06-19 10:44:32.564573');
+INSERT INTO `django_migrations` VALUES (10, 'auth', '0005_alter_user_last_login_null', '2022-06-19 10:44:32.575576');
+INSERT INTO `django_migrations` VALUES (11, 'auth', '0006_require_contenttypes_0002', '2022-06-19 10:44:32.576488');
+INSERT INTO `django_migrations` VALUES (12, 'auth', '0007_alter_validators_add_error_messages', '2022-06-19 10:44:32.581006');
+INSERT INTO `django_migrations` VALUES (13, 'auth', '0008_alter_user_username_max_length', '2022-06-19 10:44:32.596255');
+INSERT INTO `django_migrations` VALUES (14, 'auth', '0009_alter_user_last_name_max_length', '2022-06-19 10:44:32.609861');
+INSERT INTO `django_migrations` VALUES (15, 'auth', '0010_alter_group_name_max_length', '2022-06-19 10:44:32.617614');
+INSERT INTO `django_migrations` VALUES (16, 'auth', '0011_update_proxy_permissions', '2022-06-19 10:44:32.621214');
+INSERT INTO `django_migrations` VALUES (17, 'auth', '0012_alter_user_first_name_max_length', '2022-06-19 10:44:32.633468');
+INSERT INTO `django_migrations` VALUES (18, 'file', '0001_initial', '2022-06-19 10:44:32.640435');
+INSERT INTO `django_migrations` VALUES (19, 'file', '0002_alter_filemanager_id', '2022-06-19 10:44:32.647955');
+INSERT INTO `django_migrations` VALUES (20, 'log', '0001_initial', '2022-06-19 10:44:32.657577');
+INSERT INTO `django_migrations` VALUES (21, 'log', '0002_alter_log_id', '2022-06-19 10:44:32.665621');
+INSERT INTO `django_migrations` VALUES (22, 'user', '0001_initial', '2022-06-19 10:44:32.726788');
+INSERT INTO `django_migrations` VALUES (23, 'software', '0001_initial', '2022-06-19 10:44:32.751318');
+INSERT INTO `django_migrations` VALUES (24, 'plan', '0001_initial', '2022-06-19 10:44:32.795555');
+INSERT INTO `django_migrations` VALUES (25, 'plan', '0002_alter_testplan_id', '2022-06-19 10:44:32.806378');
+INSERT INTO `django_migrations` VALUES (26, 'sessions', '0001_initial', '2022-06-19 10:44:32.814163');
+INSERT INTO `django_migrations` VALUES (27, 'software', '0002_alter_software_name', '2022-06-19 10:44:32.825552');
+INSERT INTO `django_migrations` VALUES (28, 'task', '0001_initial', '2022-06-19 10:44:32.893446');
+INSERT INTO `django_migrations` VALUES (29, 'task', '0002_alter_testtask_id', '2022-06-19 10:44:32.938279');
+INSERT INTO `django_migrations` VALUES (30, 'user', '0002_auto_20220619_1043', '2022-06-19 10:44:33.059425');
 COMMIT;
 
 -- ----------------------------
@@ -333,7 +339,7 @@ COMMIT;
 -- ----------------------------
 DROP TABLE IF EXISTS `file_manager`;
 CREATE TABLE `file_manager` (
-  `id` varchar(30) NOT NULL,
+  `id` varchar(128) NOT NULL,
   `path` varchar(200) NOT NULL,
   `create_time` datetime(6) NOT NULL,
   `update_time` datetime(6) NOT NULL,
@@ -346,9 +352,6 @@ CREATE TABLE `file_manager` (
 -- Records of file_manager
 -- ----------------------------
 BEGIN;
-INSERT INTO `file_manager` VALUES ('TestLaboratory_V1_File_1', 'TestLaboratory_V1_Software_1/TestLaboratory_V1_Version_1/2022-02-26 15:25:09.727411/FiddlerSetup.exe', '2022-02-26 15:25:09.802285', '2022-02-26 15:31:14.026098', 1, 'software');
-INSERT INTO `file_manager` VALUES ('TestLaboratory_V1_File_2', 'TestLaboratory_V1_Software_1/TestLaboratory_V1_Version_1/2022-02-26 15:31:14.046576/winrar-x64-600sc.exe', '2022-02-26 15:31:14.074771', '2022-02-26 15:35:18.316993', 1, 'software');
-INSERT INTO `file_manager` VALUES ('TestLaboratory_V1_File_3', 'TestLaboratory_V1_Software_1/TestLaboratory_V1_Version_1/2022-02-26 15:35:18.331614/winrar-x64-600sc.exe', '2022-02-26 15:35:18.360856', '2022-02-26 15:35:18.360895', 0, 'software');
 COMMIT;
 
 -- ----------------------------
@@ -356,7 +359,7 @@ COMMIT;
 -- ----------------------------
 DROP TABLE IF EXISTS `log`;
 CREATE TABLE `log` (
-  `id` varchar(50) NOT NULL,
+  `id` varchar(128) NOT NULL,
   `action` varchar(100) NOT NULL,
   `entity_class` varchar(50) NOT NULL,
   `entity_name` varchar(50) DEFAULT NULL,
@@ -374,15 +377,6 @@ CREATE TABLE `log` (
 -- Records of log
 -- ----------------------------
 BEGIN;
-INSERT INTO `log` VALUES ('TestLaboratory_V1_Log_1', '新建测试目标', '测试目标', 'test1', 'POST', 'TestLaboratory_V1_User_1', 'honghong', 1, '2022-02-26 15:25:09.861873', '2022-02-26 15:25:09.861951', 0);
-INSERT INTO `log` VALUES ('TestLaboratory_V1_Log_2', '查看测试目标', '测试目标', 'test1', 'GET', 'TestLaboratory_V1_User_1', 'honghong', 1, '2022-02-26 15:30:13.481958', '2022-02-26 15:30:13.481998', 0);
-INSERT INTO `log` VALUES ('TestLaboratory_V1_Log_3', '查看测试目标', '测试目标', 'test1', 'GET', 'TestLaboratory_V1_User_1', 'honghong', 1, '2022-02-26 15:30:54.734173', '2022-02-26 15:30:54.734209', 0);
-INSERT INTO `log` VALUES ('TestLaboratory_V1_Log_4', '编辑版本', '目标版本', 'test1-1.0', 'PUT', 'TestLaboratory_V1_User_1', 'honghong', 1, '2022-02-26 15:31:14.107495', '2022-02-26 15:31:14.107532', 0);
-INSERT INTO `log` VALUES ('TestLaboratory_V1_Log_5', '查看测试目标', '测试目标', 'test1', 'GET', 'TestLaboratory_V1_User_1', 'honghong', 1, '2022-02-26 15:31:14.197590', '2022-02-26 15:31:14.197627', 0);
-INSERT INTO `log` VALUES ('TestLaboratory_V1_Log_6', '查看测试目标', '测试目标', 'test1', 'GET', 'TestLaboratory_V1_User_1', 'honghong', 1, '2022-02-26 15:33:51.792988', '2022-02-26 15:33:51.793027', 0);
-INSERT INTO `log` VALUES ('TestLaboratory_V1_Log_7', '编辑版本', '目标版本', 'test1-1.0', 'PUT', 'TestLaboratory_V1_User_1', 'honghong', 1, '2022-02-26 15:35:18.400440', '2022-02-26 15:35:18.400479', 0);
-INSERT INTO `log` VALUES ('TestLaboratory_V1_Log_8', '查看测试目标', '测试目标', 'test1', 'GET', 'TestLaboratory_V1_User_1', 'honghong', 1, '2022-02-26 15:35:18.501556', '2022-02-26 15:35:18.501593', 0);
-INSERT INTO `log` VALUES ('TestLaboratory_V1_Log_9', '查看测试目标', '测试目标', 'test1', 'GET', 'TestLaboratory_V1_User_1', 'honghong', 1, '2022-02-26 15:36:03.925612', '2022-02-26 15:36:03.925649', 0);
 COMMIT;
 
 -- ----------------------------
@@ -390,7 +384,7 @@ COMMIT;
 -- ----------------------------
 DROP TABLE IF EXISTS `permission`;
 CREATE TABLE `permission` (
-  `id` varchar(50) NOT NULL,
+  `id` varchar(128) NOT NULL,
   `name` varchar(25) NOT NULL,
   `url` varchar(125) DEFAULT NULL,
   `method` varchar(20) DEFAULT NULL,
@@ -439,7 +433,7 @@ COMMIT;
 -- ----------------------------
 DROP TABLE IF EXISTS `plan`;
 CREATE TABLE `plan` (
-  `id` varchar(30) NOT NULL,
+  `id` varchar(128) NOT NULL,
   `title` varchar(30) NOT NULL,
   `version` varchar(20) NOT NULL,
   `state` int NOT NULL,
@@ -448,12 +442,12 @@ CREATE TABLE `plan` (
   `create_time` datetime(6) NOT NULL,
   `update_time` datetime(6) NOT NULL,
   `delete` tinyint(1) NOT NULL,
-  `creator_id` varchar(50) DEFAULT NULL,
+  `creator_id` varchar(128) DEFAULT NULL,
   `software_id` varchar(30) NOT NULL,
   PRIMARY KEY (`id`),
-  KEY `plan_creator_id_c94ecd21_fk_user_id` (`creator_id`),
   KEY `plan_software_id_4b28cc2e_fk_software_id` (`software_id`),
-  CONSTRAINT `plan_creator_id_c94ecd21_fk_user_id` FOREIGN KEY (`creator_id`) REFERENCES `user` (`id`),
+  KEY `plan_creator_id_c94ecd21_fk` (`creator_id`),
+  CONSTRAINT `plan_creator_id_c94ecd21_fk` FOREIGN KEY (`creator_id`) REFERENCES `user` (`id`),
   CONSTRAINT `plan_software_id_4b28cc2e_fk_software_id` FOREIGN KEY (`software_id`) REFERENCES `software` (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
@@ -468,7 +462,7 @@ COMMIT;
 -- ----------------------------
 DROP TABLE IF EXISTS `role`;
 CREATE TABLE `role` (
-  `id` varchar(50) NOT NULL,
+  `id` varchar(128) NOT NULL,
   `name` varchar(25) NOT NULL,
   `create_time` datetime(6) NOT NULL,
   `update_time` datetime(6) NOT NULL,
@@ -492,13 +486,11 @@ COMMIT;
 DROP TABLE IF EXISTS `role_permissions`;
 CREATE TABLE `role_permissions` (
   `id` bigint NOT NULL AUTO_INCREMENT,
-  `role_id` varchar(50) NOT NULL,
-  `permission_id` varchar(50) NOT NULL,
+  `role_id` varchar(128) NOT NULL,
+  `permission_id` varchar(128) NOT NULL,
   PRIMARY KEY (`id`),
   UNIQUE KEY `role_permissions_role_id_permission_id_04f77df0_uniq` (`role_id`,`permission_id`),
-  KEY `role_permissions_permission_id_ad343843_fk_permission_id` (`permission_id`),
-  CONSTRAINT `role_permissions_permission_id_ad343843_fk_permission_id` FOREIGN KEY (`permission_id`) REFERENCES `permission` (`id`),
-  CONSTRAINT `role_permissions_role_id_216516f2_fk_role_id` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`)
+  KEY `role_permissions_permission_id_ad343843_fk_permission_id` (`permission_id`)
 ) ENGINE=InnoDB AUTO_INCREMENT=67 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
 -- ----------------------------
@@ -578,7 +570,7 @@ COMMIT;
 -- ----------------------------
 DROP TABLE IF EXISTS `software`;
 CREATE TABLE `software` (
-  `name` varchar(50) NOT NULL,
+  `name` varchar(128) NOT NULL,
   `id` varchar(30) NOT NULL,
   `type` varchar(20) NOT NULL,
   `report_file` longtext,
@@ -592,7 +584,7 @@ CREATE TABLE `software` (
 -- Records of software
 -- ----------------------------
 BEGIN;
-INSERT INTO `software` VALUES ('test1', 'TestLaboratory_V1_Software_1', '功能测试', NULL, '2022-02-26 15:25:09.826726', '2022-02-26 15:25:09.826810', 0);
+INSERT INTO `software` VALUES ('test1', 'TestLaboratory_V1_Software_1', '功能测试', NULL, '1900-01-20 15:25:09.000000', '1900-01-20 15:25:09.000000', 0);
 COMMIT;
 
 -- ----------------------------
@@ -600,7 +592,7 @@ COMMIT;
 -- ----------------------------
 DROP TABLE IF EXISTS `task`;
 CREATE TABLE `task` (
-  `id` varchar(30) NOT NULL,
+  `id` varchar(128) NOT NULL,
   `title` varchar(50) NOT NULL,
   `state` int NOT NULL,
   `description` longtext NOT NULL,
@@ -613,7 +605,7 @@ CREATE TABLE `task` (
   `create_time` datetime(6) NOT NULL,
   `update_time` datetime(6) NOT NULL,
   `delete` tinyint(1) NOT NULL,
-  `plan_id` varchar(30) NOT NULL,
+  `plan_id` varchar(128) NOT NULL,
   PRIMARY KEY (`id`),
   KEY `task_plan_id_77395325_fk_plan_id` (`plan_id`),
   CONSTRAINT `task_plan_id_77395325_fk_plan_id` FOREIGN KEY (`plan_id`) REFERENCES `plan` (`id`)
@@ -631,13 +623,11 @@ COMMIT;
 DROP TABLE IF EXISTS `task_executor`;
 CREATE TABLE `task_executor` (
   `id` bigint NOT NULL AUTO_INCREMENT,
-  `testtask_id` varchar(30) NOT NULL,
-  `user_id` varchar(50) NOT NULL,
+  `testtask_id` varchar(128) NOT NULL,
+  `user_id` varchar(128) NOT NULL,
   PRIMARY KEY (`id`),
   UNIQUE KEY `task_executor_testtask_id_user_id_33019daf_uniq` (`testtask_id`,`user_id`),
-  KEY `task_executor_user_id_0f117fee_fk_user_id` (`user_id`),
-  CONSTRAINT `task_executor_testtask_id_4c824a4a_fk_task_id` FOREIGN KEY (`testtask_id`) REFERENCES `task` (`id`),
-  CONSTRAINT `task_executor_user_id_0f117fee_fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
+  KEY `task_executor_user_id_0f117fee_fk_user_id` (`user_id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
 -- ----------------------------
@@ -671,12 +661,12 @@ CREATE TABLE `test_case` (
   `delete` tinyint(1) NOT NULL,
   `remark` longtext,
   `software_id` varchar(30) DEFAULT NULL,
-  `task_id` varchar(30) NOT NULL,
+  `task_id` varchar(128) NOT NULL,
   PRIMARY KEY (`id`),
   KEY `test_case_software_id_b7e9af75_fk_software_id` (`software_id`),
-  KEY `test_case_task_id_6c501356_fk_task_id` (`task_id`),
+  KEY `test_case_task_id_6c501356_fk` (`task_id`),
   CONSTRAINT `test_case_software_id_b7e9af75_fk_software_id` FOREIGN KEY (`software_id`) REFERENCES `software` (`id`),
-  CONSTRAINT `test_case_task_id_6c501356_fk_task_id` FOREIGN KEY (`task_id`) REFERENCES `task` (`id`)
+  CONSTRAINT `test_case_task_id_6c501356_fk` FOREIGN KEY (`task_id`) REFERENCES `task` (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
 -- ----------------------------
@@ -690,7 +680,7 @@ COMMIT;
 -- ----------------------------
 DROP TABLE IF EXISTS `user`;
 CREATE TABLE `user` (
-  `id` varchar(50) NOT NULL,
+  `id` varchar(128) NOT NULL,
   `username` varchar(30) NOT NULL,
   `name` varchar(20) NOT NULL,
   `password` varchar(60) NOT NULL,
@@ -700,6 +690,7 @@ CREATE TABLE `user` (
   `update_time` datetime(6) NOT NULL,
   `is_login` tinyint(1) NOT NULL,
   `delete` tinyint(1) NOT NULL,
+  `group` varchar(128) NOT NULL,
   PRIMARY KEY (`id`),
   UNIQUE KEY `username` (`username`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
@@ -708,9 +699,10 @@ CREATE TABLE `user` (
 -- Records of user
 -- ----------------------------
 BEGIN;
-INSERT INTO `user` VALUES ('TestLaboratory_V1_User_1', 'honghong', '小红', '123456', '18851111391', 1, '2021-07-13 14:23:25.000000', '2022-02-26 19:55:11.449369', 1, 0);
-INSERT INTO `user` VALUES ('TestLaboratory_V1_User_2', 'zxc', '小蓝', '123456', '11223344556', 2, '2021-09-26 15:41:37.000000', '2022-02-26 17:33:18.375576', 1, 0);
-INSERT INTO `user` VALUES ('TestLaboratory_V1_User_3', 'bcd', '小黄', '123456', '138138138138', 2, '2021-09-26 15:44:39.000000', '2021-09-26 15:44:43.000000', 0, 0);
+INSERT INTO `user` VALUES ('TestLaboratory_V1_User_1', 'honghong', '小红', '123456', '18851111391', 1, '2021-07-13 14:23:25.000000', '2022-06-19 12:19:23.861094', 1, 0, '默认分组');
+INSERT INTO `user` VALUES ('TestLaboratory_V1_User_2', 'zxc', '小蓝', '123456', '11223344556', 2, '2021-09-26 15:41:37.000000', '1900-01-20 17:33:18.000000', 1, 0, '默认分组');
+INSERT INTO `user` VALUES ('TestLaboratory_V1_User_3', 'bcd', '小黄', '123456', '138138138138', 2, '2021-09-26 15:44:39.000000', '2021-09-26 15:44:43.000000', 0, 0, '默认分组');
+INSERT INTO `user` VALUES ('TestLaboratory_V1_User_4', 'doctor', '医生', '12345', '13888', 1, '2022-06-19 11:21:02.296993', '2022-06-20 12:17:07.818682', 1, 0, '教室');
 COMMIT;
 
 -- ----------------------------
@@ -719,13 +711,11 @@ COMMIT;
 DROP TABLE IF EXISTS `user_roles`;
 CREATE TABLE `user_roles` (
   `id` bigint NOT NULL AUTO_INCREMENT,
-  `user_id` varchar(50) NOT NULL,
-  `role_id` varchar(50) NOT NULL,
+  `user_id` varchar(128) NOT NULL,
+  `role_id` varchar(128) NOT NULL,
   PRIMARY KEY (`id`),
   UNIQUE KEY `user_roles_user_id_role_id_69bfd9a0_uniq` (`user_id`,`role_id`),
-  KEY `user_roles_role_id_816a4486_fk_role_id` (`role_id`),
-  CONSTRAINT `user_roles_role_id_816a4486_fk_role_id` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`),
-  CONSTRAINT `user_roles_user_id_9d9f8dbb_fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
+  KEY `user_roles_role_id_816a4486_fk_role_id` (`role_id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
 -- ----------------------------
@@ -747,7 +737,7 @@ CREATE TABLE `version` (
   `delete` tinyint(1) NOT NULL,
   `software_id` varchar(30) NOT NULL,
   PRIMARY KEY (`id`),
-  KEY `version_software_id_d30b116d_fk_software_id` (`software_id`),
+  KEY `version_software_id_d30b116d` (`software_id`),
   CONSTRAINT `version_software_id_d30b116d_fk_software_id` FOREIGN KEY (`software_id`) REFERENCES `software` (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
@@ -755,7 +745,6 @@ CREATE TABLE `version` (
 -- Records of version
 -- ----------------------------
 BEGIN;
-INSERT INTO `version` VALUES ('TestLaboratory_V1_Version_1', '1.0', 'TestLaboratory_V1_File_3', '2022-02-26 15:25:09.841049', '2022-02-26 15:35:18.344164', 0, 'TestLaboratory_V1_Software_1');
 COMMIT;
 
 SET FOREIGN_KEY_CHECKS = 1;

+ 2 - 0
TestLaboratory_ali_v1.3/TestLaboratory/mysql_restart.sh

@@ -0,0 +1,2 @@
+docker cp mysql_restart_sec.sh "$1":/;
+docker exec -it "$1" /bin/bash -c 'mysql -uroot -pliufan3344 -DTestLaboratory</docker-entrypoint-initdb.d/TestLaboratory.sql';

BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/.DS_Store


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/.DS_Store


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_1/.DS_Store


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_1/2022-06-26 11:41:18.561595/测试用例-未执行.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_1/2022-06-26 11:46:22.321678/测试用例-未执行.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_1/2022-06-26 11:46:30.446071/测试用例-已执行.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_2/2022-06-26 11:41:46.208533/测试用例-未执行.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_2/2022-06-26 11:46:46.185401/测试用例-已执行.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_5/2022-06-26 18:07:46.867181/测试用例-未执行.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_5/2022-06-26 18:08:46.885924/测试用例-未执行.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_5/2022-06-26 18:09:31.614506/测试用例-已执行.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_6/2022-06-26 18:08:53.033250/测试用例-未执行.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_6/2022-06-26 18:09:22.009593/测试用例-已执行.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/case-file/TestLaboratory_V1_Task_6/2022-06-26 18:10:01.518199/测试用例-已执行.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/case-template/.DS_Store


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/case-template/测试用例-已执行.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/case-template/测试用例-未执行.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/plan-statement/TestLaboratory_V1_Task_2/2022-06-26 17:58:43.979114/测试用例模版.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/plan-statement/TestLaboratory_V1_Task_2/2022-06-26 17:59:45.141399/测试用例模版.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/plan-statement/TestLaboratory_V1_Task_2/2022-06-26 18:01:25.266843/测试用例模版.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/plan-statement/TestLaboratory_V1_Task_8/2022-06-26 18:00:31.150272/测试用例模版.xlsx


BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/report-tmp/测试报告表格-5.docx


+ 58 - 0
TestLaboratory_ali_v1.3/TestLaboratory/static/software/TestLaboratory_V1_Software_2/TestLaboratory_V1_Version_1/2022-06-26 11:24:31.750279/ospf_test2.json

@@ -0,0 +1,58 @@
+{
+  "test": {
+    "case1": {
+      "router": "RouterA",
+      "type": 0,
+      "input": "show ip route",
+      "output": "show ip route\r\nCodes: C - connected, S - static, R - RIP, M - mobile, B - BGP\r\n       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area \r\n       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2\r\n       E1 - OSPF external type 1, E2 - OSPF external type 2\r\n       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2\r\n       ia - IS-IS inter area, * - candidate default, U - per-user static route\r\n       o - ODR, P - periodic downloaded static route\r\n\r\nGateway of last resort is not set\r\n\r\n     172.16.0.0/24 is subnetted, 4 subnets\r\nC       172.16.0.0 is directly connected, FastEthernet0/0\r\nC       172.16.1.0 is directly connected, Loopback0\r\nC       172.16.2.0 is directly connected, Loopback1\r\nC       172.16.3.0 is directly connected, Loopback2\r\nC    192.168.1.0/24 is directly connected, Serial0/0/0\r\nO IA 192.168.2.0/24 [110/1562] via 192.168.1.1, 00:30:33, Serial0/0/0\r\nRouterA#"
+    },
+    "case2": {
+      "router": "RouterB",
+      "type": 0,
+      "input": "show ip route",
+      "output": "show ip route\r\nCodes: C - connected, S - static, R - RIP, M - mobile, B - BGP\r\n       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area \r\n       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2\r\n       E1 - OSPF external type 1, E2 - OSPF external type 2\r\n       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2\r\n       ia - IS-IS inter area, * - candidate default, U - per-user static route\r\n       o - ODR, P - periodic downloaded static route\r\n\r\nGateway of last resort is not set\r\n\r\n     172.16.0.0/24 is subnetted, 1 subnets\r\nC       172.16.0.0 is directly connected, FastEthernet0/0\r\nC    192.168.1.0/24 is directly connected, Serial0/0/0\r\nC    192.168.2.0/24 is directly connected, Serial0/0/1\r\nRouterB#"
+    },
+    "case3": {
+      "router": "RouterC",
+      "type": 0,
+      "input": "show ip route",
+      "output": "show ip route\r\nCodes: C - connected, S - static, R - RIP, M - mobile, B - BGP\r\n       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area \r\n       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2\r\n       E1 - OSPF external type 1, E2 - OSPF external type 2\r\n       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2\r\n       ia - IS-IS inter area, * - candidate default, U - per-user static route\r\n       o - ODR, P - periodic downloaded static route\r\n\r\nGateway of last resort is not set\r\n\r\n     172.16.0.0/24 is subnetted, 1 subnets\r\nC       172.16.0.0 is directly connected, FastEthernet0/0\r\n     172.24.0.0/24 is subnetted, 1 subnets\r\nC       172.24.2.0 is directly connected, Loopback0\r\nO IA 192.168.1.0/24 [110/1562] via 192.168.2.1, 00:30:42, Serial0/0/1\r\nC    192.168.2.0/24 is directly connected, Serial0/0/1\r\nRouterC#"
+    },
+    "case4": {
+      "router": "RouterA",
+      "type": 0,
+      "input": "show ip interface brief",
+      "output": "show ip interface brief\r\nInterface                  IP-Address      OK? Method Status                Protocol\r\nFastEthernet0/0            172.16.0.1      YES NVRAM  up                    up      \r\nFastEthernet0/1            unassigned      YES NVRAM  administratively down down    \r\nSerial0/0/0                192.168.1.2     YES manual up                    up      \r\nSerial0/0/1                unassigned      YES NVRAM  administratively down down    \r\nSSLVPN-VIF0                unassigned      NO  unset  up                    up      \r\nLoopback0                  172.16.1.1      YES manual up                    up      \r\nLoopback1                  172.16.2.1      YES manual up                    up      \r\nLoopback2                  172.16.3.1      YES manual up                    up      \r\nRouterA#"
+    },
+    "case5": {
+      "router": "RouterB",
+      "type": 0,
+      "input": "show ip interface brief",
+      "output": "show ip interface brief\r\nInterface                  IP-Address      OK? Method Status                Protocol\r\nFastEthernet0/0            172.16.0.2      YES NVRAM  up                    up      \r\nFastEthernet0/1            unassigned      YES NVRAM  administratively down down    \r\nSerial0/0/0                192.168.1.1     YES manual up                    up      \r\nSerial0/0/1                192.168.2.1     YES manual up                    up      \r\nSSLVPN-VIF0                unassigned      NO  unset  up                    up      \r\nRouterB#"
+    },
+    "case6": {
+      "router": "RouterC",
+      "type": 0,
+      "input": "show ip interface brief",
+      "output": "show ip interface brief\r\nInterface                  IP-Address      OK? Method Status                Protocol\r\nFastEthernet0/0            172.16.0.3      YES NVRAM  up                    up      \r\nFastEthernet0/1            unassigned      YES NVRAM  administratively down down    \r\nSerial0/0/0                unassigned      YES NVRAM  administratively down down    \r\nSerial0/0/1                192.168.2.2     YES manual up                    up      \r\nSSLVPN-VIF0                unassigned      NO  unset  up                    up      \r\nLoopback0                  172.24.2.1      YES manual up                    up      \r\nRouterC#"
+    },
+    "case7": {
+      "router": "RouterA",
+      "type": 0,
+      "input": "ping 192.168.2.2",
+      "output": "ping 192.168.2.2\r\n\r\nType escape sequence to abort.\r\nSending 5, 100-byte ICMP Echos to 192.168.2.2, timeout is 2 seconds:\r\n!!!!!\r\nSuccess rate is 100 percent (5/5), round-trip min/avg/max = 28/28/28 ms\r\nRouterA#"
+    },
+    "case8": {
+      "router": "RouterA",
+      "type": 0,
+      "input": "ping 192.168.2.1",
+      "output": "ping 192.168.2.1\r\n\r\nType escape sequence to abort.\r\nSending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:\r\n!!!!!\r\nSuccess rate is 100 percent (5/5), round-trip min/avg/max = 16/16/16 ms\r\nRouterA#"
+    },
+    "case9": {
+      "router": "RouterA",
+      "type": 1,
+      "input": "show ip ospf database",
+      "output": "Summary Net Link States"
+    }
+  }
+}

BIN
TestLaboratory_ali_v1.3/TestLaboratory/static/task-statement/2022-06-26 16:49:10.355457/测试用例模版.xlsx