Commit cd4d74b8 authored by 王英豪's avatar 王英豪

1123

parent 53f0e3f6
......@@ -57,7 +57,7 @@ urlpatterns = [
# path('', include("automated_main.url.api_automation_url.api_module_url")),
# 获取api环境列表
path('', include("automated_main.url.api_automation_url.api_environment_url")),
# path('', include("automated_main.url.api_automation_url.api_environment_url")),
# # API测试用例
......@@ -67,20 +67,12 @@ urlpatterns = [
# path('', include("automated_main.url.api_automation_url.api_business_test_url")),
# API数据库
path('', include("automated_main.url.api_automation_url.api_database_url")),
# path('', include("automated_main.url.api_automation_url.api_database_url")),
# # API任务管理
# path('', include("automated_main.url.api_automation_url.api_test_task_url")),
# API接口管理
path('', include("automated_main.url.api_automation_url.api_management_url")),
# API场景用例
path('', include("automated_main.url.api_automation_url.api_scenarios_case_url")),
# API测试计划
path('', include("automated_main.url.api_automation_url.api_plan_url")),
# 性能测试-性能项目
path('', include("automated_main.url.performance_test_url.performance_project_url")),
......
......@@ -15,7 +15,7 @@ from automated_main.models.ui_automation.ui_test_task import UITestTask, UITestR
"""
# from automated_main.models.api_automation.api_project import APIProject
# from automated_main.models.api_automation.api_module import APIModule
from automated_main.models.api_automation.api_environment import APIEnvironment
# from automated_main.models.api_automation.api_environment import APIEnvironment
"""
8.19 弃用
"""
......@@ -25,11 +25,7 @@ from automated_main.models.api_automation.api_environment import APIEnvironment
from automated_main.models.performance_test.performance_project import PerformanceProject
from automated_main.models.performance_test.performance_script import PerformanceScript
from automated_main.models.performance_test.performance_report import PerformanceReport
from automated_main.models.api_automation.api_database import APIDatabase
from automated_main.models.api_automation.api_management import ApiManagement
from automated_main.models.api_automation.api_interfaces_case import ApiInterfacesCase
from automated_main.models.api_automation.api_scenarios_case import ApiScenariosCaseAssociated, ApiScenariosCaseAssociated
from automated_main.models.api_automation.api_test_plan import ApiTestPlan
#
......
# -*- coding: utf-8 -*-
# @Time : 2021/3/2 18:44
# @Author : wangyinghao
# @FileName: __init__.py.py
# @Software: PyCharm
# -*- coding: utf-8 -*-
# @Time : 2021/4/14 17:20
# @Author : wangyinghao
# @FileName: api_business_test.py
# @Software: PyCharm
"""
8.19 弃用
"""
# from django.db import models
# from automated_main.models.api_automation.api_project import APIProject
# from automated_main.models.api_automation.api_module import APIModule
# from automated_main.models.api_automation.api_test_case import ApiTestCase
#
#
# class ApiBusinessTest(models.Model):
# """
# api业务测试表
# """
#
# api_business_test_name = models.CharField("API业务测试名称", max_length=100, null=False)
# api_business_test_describe = models.TextField("API业务测试描述", max_length=5000, null=True)
# api_project = models.ForeignKey(APIProject, on_delete=models.CASCADE)
# updata_time = models.DateTimeField(auto_now_add=True)
# create_time = models.DateTimeField("创建时间", auto_now_add=True)
#
# def __str__(self):
# return self.api_business_test_name
#
#
# class ApiBusinessTestAssociated(models.Model):
# """
# API业务测试关联表
# """
# bid = models.ForeignKey(ApiBusinessTest, on_delete=models.CASCADE)
# api_module = models.ForeignKey(APIModule, on_delete=models.CASCADE)
# api_test_case = models.ForeignKey(ApiTestCase, on_delete=models.CASCADE)
# case_steps = models.CharField("操作步骤", max_length=100, null=False)
# updata_time = models.DateTimeField(auto_now_add=True)
# create_time = models.DateTimeField("创建时间", auto_now_add=True)
#
# def __str__(self):
# return str(self.bid)
from django.db import models
class APIDatabase(models.Model):
"""
API数据库
"""
api_database_title = models.CharField("API数据库名称", max_length=200, null=False)
api_host = models.CharField("API_Host", max_length=200, null=False)
api_port = models.CharField("端口号", max_length=200, null=False)
user = models.CharField("用户名", max_length=200, null=False)
password = models.CharField("密码", max_length=200, null=False)
database = models.CharField("数据库表名", max_length=200, null=False)
create_time = models.DateTimeField("创建时间", auto_now_add=True)
updata_time = models.DateTimeField("更新时间", auto_now_add=True)
def __str__(self):
return self.api_database_title
# -*- coding: utf-8 -*-
# @Time : 2021/3/25 15:00
# @Author : wangyinghao
# @FileName: api_environment.py
# @Software: PyCharm
from django.db import models
class APIEnvironment(models.Model):
"""
API环境设置
"""
api_environment_name = models.CharField("API环境名称", max_length=200, null=False)
api_title = models.CharField("API环境标题名称", max_length=200, null=False)
api_environment_describe = models.TextField("API环境描述", default="", null=True)
status = models.BooleanField("状态", default=1)
create_time = models.DateTimeField("创建时间", auto_now_add=True)
update_time = models.DateTimeField("更新时间", auto_now_add=True)
def __str__(self):
return self.api_environment_name
class APIGlobalVariable(models.Model):
"""
Api环境全局变量
"""
api_environment = models.ForeignKey(APIEnvironment, on_delete=models.CASCADE)
api_global_variable_name = models.TextField("全局变量名称", max_length=5000, null=True)
api_global_variable_value = models.TextField("全局变量值", max_length=5000, null=True)
api_global_variable_describe = models.TextField("全局变量描述", max_length=5000, null=True)
create_time = models.DateTimeField("创建时间", auto_now_add=True)
update_time = models.DateTimeField("更新时间", auto_now_add=True)
def __str__(self):
return self.api_global_variable_name
# -*- coding: utf-8 -*-
# @Time : 2022/7/5 11:22
# @Author : wangyinghao
# @Site :
# @File : api_interfaces_case.py
# @Software: PyCharm
from django.db import models
from automated_main.models.api_automation.api_environment import APIEnvironment
from automated_main.models.api_automation.api_database import APIDatabase
from automated_main.models.api_automation.api_management import ApiManagement
class ApiInterfacesCase(models.Model):
"""
接口测试用例
"""
api_interfaces_case_name = models.CharField("接口测试用例名称", max_length=200, null=False)
api_documentation = models.TextField("API接口文档地址", max_length=5000, null=True)
api_management = models.ForeignKey(ApiManagement, on_delete=models.CASCADE)
api_environment = models.ForeignKey(APIEnvironment, on_delete=models.CASCADE)
api_method = models.IntegerField("请求方法", null=False) # 1:get 2.post 3:put 4:delete
api_url = models.TextField("API请求地址", null=False)
# 1:form-data 2: json 3:x-www-form-urlencoded
api_parameter_types = models.IntegerField("参数类型", null=False)
api_headers = models.TextField("请求头", null=False)
api_parameter_body = models.TextField("参数内容", null=False)
api_assert_type = models.IntegerField("断言类型", null=False) # 1:包含contains 2: 匹配mathches 3:数据库校验 4:code状态码
dataBase = models.ForeignKey(APIDatabase, on_delete=models.CASCADE, blank=True, null=True)
database_sql = models.TextField("数据库SQL", max_length=8000, null=True, blank=True)
api_assert_text = models.TextField("断言结果", null=False)
update_time = models.DateTimeField(auto_now_add=True)
create_time = models.DateTimeField("创建时间", auto_now_add=True)
def __str__(self):
return self.api_interfaces_case_name
class ApiInterfacesParameterExtraction(models.Model):
"""
Api提取变量表
"""
api_test_case = models.ForeignKey(ApiInterfacesCase, on_delete=models.CASCADE)
api_variable_results = models.TextField("变量提取结果", max_length=5000, null=True)
api_value_variable = models.TextField("提取变量", max_length=5000, null=True)
api_key_variable = models.TextField("关键字变量名称", max_length=5000, null=True)
def __str__(self):
return self.api_key_variable
class ApiInterfacesParameterData(models.Model):
"""
Parameter参数
"""
api_test_case = models.ForeignKey(ApiInterfacesCase, on_delete=models.CASCADE)
api_parameter_name = models.CharField("参数名称", max_length=500, null=True)
api_must_parameter = models.TextField("必填", max_length=50, null=True)
api_parameter_value = models.TextField("参数值", max_length=5000, null=True)
api_field_describe = models.TextField("字段描述", max_length=5000, null=True)
def __str__(self):
return self.api_parameter_name
# -*- coding: utf-8 -*-
# @Time : 2022/5/24 21:12
# @Author : wangyinghao
# @Site :
# @File : api_management.py
# @Software: PyCharm
from django.db import models
from django.utils import timezone
IS_ROOT = 0
class ApiManagement(models.Model):
name = models.CharField('name', blank=False, default="", max_length=200)
description = models.TextField('description', blank=True, default='')
parent = models.IntegerField('父节点', blank=False, default=IS_ROOT)
yapi_id = models.CharField("YAPIID", blank=True, max_length=2000, null=True)
create_time = models.DateTimeField(auto_now_add=True, blank=True, null=True)
update_time = models.DateTimeField(auto_now_add=True, blank=True, null=True)
def __str__(self):
return self.name
# -*- coding: utf-8 -*-
# @Time : 2021/3/3 10:57
# @Author : wangyinghao
# @FileName: api_module.py
# @Software: PyCharm
"""
8.19 弃用
"""
# from django.db import models
# from automated_main.models.api_automation.api_project import APIProject
#
#
# class APIModule(models.Model):
# """
# API模块表
# """
# api_project = models.ForeignKey(APIProject, on_delete=models.CASCADE, null=True)
# api_module_name = models.CharField("API模块名称", max_length=50, null=False)
# api_module_describe = models.TextField("API模块描述", default="", null=True)
# create_time = models.DateTimeField("创建时间", auto_now_add=True)
# updata_time = models.DateTimeField("更新时间", auto_now_add=True)
#
# def __str__(self):
# return self.api_module_name
# -*- coding: utf-8 -*-
# @Time : 2021/3/2 18:44
# @Author : wangyinghao
# @FileName: api_project.py
# @Software: PyCharm
# from django.db import models
#
#
"""
8.19 弃用
"""
# # Create your models here.
# class APIProject(models.Model):
# """
# API项目表
# """
# api_project_name = models.CharField("API项目名称", max_length=50, null=False)
# describe = models.TextField("描述", default="", max_length=2000, null=True)
# status = models.BooleanField("状态", default=1)
# updata_time = models.DateTimeField(auto_now_add=True)
# create_time = models.DateTimeField("创建时间", auto_now_add=True)
#
# def __str__(self):
# return self.api_project_name
# -*- coding: utf-8 -*-
# @Time : 2022/7/20 10:07
# @Author : wangyinghao
# @Site :
# @File : api_scenarios_case.py
# @Software: PyCharm
from django.db import models
from automated_main.models.api_automation.api_management import ApiManagement
from automated_main.models.api_automation.api_interfaces_case import ApiInterfacesCase
class ApiScenariosCase(models.Model):
"""
API场景测试表
"""
api_scenarios_case_name = models.CharField("API场景测试名称", max_length=200, null=False)
api_scenarios_case_describe = models.TextField("API业务测试描述", max_length=5000, null=True)
api_management = models.ForeignKey(ApiManagement, on_delete=models.CASCADE)
update_time = models.DateTimeField(auto_now_add=True)
create_time = models.DateTimeField("创建时间", auto_now_add=True)
def __str__(self):
return self.api_scenarios_case_name
class ApiScenariosCaseAssociated(models.Model):
"""
API场景测试关联表
"""
sid = models.ForeignKey(ApiScenariosCase, on_delete=models.CASCADE)
interfaces_case = models.ForeignKey(ApiInterfacesCase, on_delete=models.CASCADE)
case_steps = models.CharField("操作步骤", max_length=100, null=False)
update_time = models.DateTimeField(auto_now_add=True)
create_time = models.DateTimeField("创建时间", auto_now_add=True)
def __str__(self):
return str(self.sid)
# -*- coding: utf-8 -*-
# @Time : 2021/3/29 17:30
# @Author : wangyinghao
# @FileName: api_test_case.py
# @Software: PyCharm
"""
8.19 弃用
"""
# from django.db import models
# from automated_main.models.api_automation.api_module import APIModule
# from automated_main.models.api_automation.api_environment import APIEnvironment
# from automated_main.models.api_automation.api_database import APIDatabase
#
#
# class ApiTestCase(models.Model):
# """
# Api测试用例表
# """
# api_test_case_name = models.TextField("API测试用例名称", max_length=5000, null=False)
# api_documentation = models.TextField("API接口文档地址", max_length=5000, null=True)
# api_module = models.ForeignKey(APIModule, on_delete=models.CASCADE)
# api_environment = models.ForeignKey(APIEnvironment, on_delete=models.CASCADE)
# api_method = models.IntegerField("请求方法", null=False) # 1:get 2.post 3:put 4:delete
# api_url = models.TextField("API请求地址", null=False)
# # 1:form-data 2: json 3:x-www-form-urlencoded
# api_parameter_types = models.IntegerField("参数类型", null=False)
# api_headers = models.TextField("请求头", null=False)
# api_parameter_body = models.TextField("参数内容", null=False)
# api_assert_type = models.IntegerField("断言类型", null=False) # 1:包含contains 2: 匹配mathches 3:数据库校验 4:code状态码
# dataBase = models.ForeignKey(APIDatabase, on_delete=models.CASCADE, blank=True, null=True)
# database_sql = models.TextField("数据库SQL", max_length=8000, null=True, blank=True)
# api_assert_text = models.TextField("断言结果", null=False)
# update_time = models.DateTimeField(auto_now_add=True)
# create_time = models.DateTimeField("创建时间", auto_now_add=True)
#
# def __str__(self):
# return self.api_test_case_name
#
#
# class ApiParameterExtraction(models.Model):
# """
# Api提取变量表
# """
# api_test_case = models.ForeignKey(ApiTestCase, on_delete=models.CASCADE)
# api_variable_results = models.TextField("变量提取结果", max_length=5000, null=True)
# api_value_variable = models.TextField("提取变量", max_length=5000, null=True)
# api_key_variable = models.TextField("关键字变量名称", max_length=5000, null=True)
#
# def __str__(self):
# return self.api_key_variable
#
#
# class ApiParameterData(models.Model):
# """
# Parameter参数
# """
# api_test_case = models.ForeignKey(ApiTestCase, on_delete=models.CASCADE)
# api_parameter_name = models.CharField("参数名称", max_length=500, null=True)
# api_must_parameter = models.TextField("必填", max_length=50, null=True)
# api_parameter_value = models.TextField("参数值", max_length=5000, null=True)
# api_field_describe = models.TextField("字段描述", max_length=5000, null=True)
#
# def __str__(self):
# return self.api_parameter_name
# -*- coding: utf-8 -*-
# @Time : 2022/7/21 14:36
# @Author : wangyinghao
# @Site :
# @File : api_test_plan.py
# @Software: PyCharm
from django.db import models
from automated_main.models.api_automation.api_management import ApiManagement
from automated_main.models.api_automation.api_environment import APIEnvironment
from automated_main.models.api_automation.api_database import APIDatabase
class ApiTestPlan(models.Model):
"""
API计划表
"""
api_test_plan_name = models.CharField("API测试计划名称", max_length=100, blank=False, default="")
api_test_plan_describe = models.TextField("描述", default="", null=True)
status = models.IntegerField("状态:", default=0) # 未执行、执行中、执行完成、排队中
cases = models.TextField("关联API用例", default="")
api_send_email = models.CharField("API邮件发送", max_length=9999, blank=True, default="", null=True)
api_send_enterprise_wechat = models.IntegerField("API企业微信发送消息", blank=True, default="0")
api_environment = models.ForeignKey(APIEnvironment, on_delete=models.CASCADE)
timing_task_status = models.CharField("定时任务是否开启", max_length=50, blank=True, default="", null=True)
starting_time = models.CharField("起始时间", max_length=50, blank=True, default="", null=True)
end_time = models.CharField("截至时间", max_length=50, blank=True, default="", null=True)
time_interval_day = models.IntegerField("间隔时间-天", blank=True, default=0, null=True)
time_interval_minutes = models.IntegerField("间隔时间-分钟", blank=True, default=0, null=True)
time_interval_hours = models.IntegerField("间隔时间-小时", blank=True, default=0, null=True)
time_interval_seconds = models.IntegerField("间隔时间-秒", blank=True, default=0, null=True)
database = models.ForeignKey(APIDatabase, on_delete=models.CASCADE)
api_management = models.ForeignKey(ApiManagement, on_delete=models.CASCADE)
update_time = models.DateTimeField(auto_now_add=True)
create_time = models.DateTimeField("创建时间", auto_now_add=True)
def __str__(self):
return self.api_test_plan_name
class APITestPlanResult(models.Model):
"""
API测试计划结果表
"""
api_test_result_name = models.CharField("api测试报告名称", max_length=200, blank=False, default="")
api_test_plan = models.ForeignKey(ApiTestPlan, on_delete=models.CASCADE)
api_error_total_number = models.CharField("失败总数", max_length=100, null=True, blank=True)
api_successful_total_number = models.CharField("成功总数", max_length=100, null=True, blank=True)
api_total_number = models.CharField("API总数", max_length=100, null=True, blank=True)
api_environment_id = models.CharField("API环境", max_length=100, null=True, blank=True)
update_time = models.DateTimeField(auto_now_add=True)
create_time = models.DateTimeField("创建时间", auto_now_add=True)
def __str__(self):
return self.api_test_result_name
class APITestPlanResultAssociated(models.Model):
"""
API测试结果关联表
"""
api_test_case_name = models.CharField("api测试用例名称", max_length=1000, blank=False, default="")
api_test_plan = models.ForeignKey(ApiTestPlan, on_delete=models.CASCADE)
api_result = models.ForeignKey(APITestPlanResult, on_delete=models.CASCADE)
api_error = models.CharField("失败", max_length=100, null=True, blank=True)
api_successful = models.CharField("成功", max_length=100, null=True, blank=True)
abnormal = models.TextField("异常", max_length=50000, null=True, blank=True)
json_extract_variable_conversion = models.TextField("json提取变量转换",
max_length=5000, null=True, blank=True)
api_assertion_results = models.TextField("断言结果", max_length=50000, null=True, blank=True)
api_variable_results = models.TextField("参数提取", max_length=50000, null=True, blank=True)
api_request_results = models.TextField("API请求结果", max_length=500000, null=True, default=None)
api_business_test_name = models.TextField("API业务测试名称", max_length=50000, null=True, blank=True)
api_header = models.TextField("header", max_length=50000, null=True, blank=True)
api_url = models.TextField("请求地址", max_length=50000, null=True, blank=True)
api_body = models.TextField("body", max_length=500000, null=True, blank=True)
update_time = models.DateTimeField(auto_now_add=True)
create_time = models.DateTimeField("创建时间", auto_now_add=True)
def __str__(self):
return self.api_test_case_name
# -*- coding: utf-8 -*-
# @Time : 2021/4/20 14:37
# @Author : wangyinghao
# @FileName: api_test_task.py
# @Software: PyCharm
# from django.db import models
# from automated_main.models.api_automation.api_project import APIProject
# from automated_main.models.api_automation.api_environment import APIEnvironment
# from automated_main.models.api_automation.api_database import APIDatabase
"""
8.19 弃用
"""
# class APITestTask(models.Model):
# """
# API任务表
# """
# api_test_task_name = models.CharField("API测试任务名称", max_length=100, blank=False, default="")
# describe = models.TextField("描述", default="", null=True)
# status = models.IntegerField("状态:", default=0) # 未执行、执行中、执行完成、排队中
# cases = models.TextField("关联API用例", default="")
# api_send_email = models.CharField("API邮件发送", max_length=9999, blank=True, default="", null=True)
# api_send_enterprise_wechat = models.IntegerField("API企业微信发送消息", blank=True, default="0")
# api_environment = models.ForeignKey(APIEnvironment, on_delete=models.CASCADE)
# timing_task_status = models.CharField("定时任务是否开启", max_length=50, blank=True, default="", null=True)
# starting_time = models.CharField("起始时间", max_length=50, blank=True, default="", null=True)
# end_time = models.CharField("截至时间", max_length=50, blank=True, default="", null=True)
# time_interval_day = models.IntegerField("间隔时间-天", blank=True, default=0, null=True)
# time_interval_minutes = models.IntegerField("间隔时间-分钟", blank=True, default=0, null=True)
# time_interval_hours = models.IntegerField("间隔时间-小时", blank=True, default=0, null=True)
# time_interval_seconds = models.IntegerField("间隔时间-秒", blank=True, default=0, null=True)
# database = models.ForeignKey(APIDatabase, on_delete=models.CASCADE)
# api_project = models.ForeignKey(APIProject, on_delete=models.CASCADE)
# update_time = models.DateTimeField(auto_now_add=True)
# create_time = models.DateTimeField("创建时间", auto_now_add=True)
#
# def __str__(self):
# return self.api_test_task_name
#
#
# class APITestResult(models.Model):
# """
# API测试结果表
# """
# api_test_result_name = models.CharField("api测试报告名称", max_length=200, blank=False, default="")
# api_task = models.ForeignKey(APITestTask, on_delete=models.CASCADE)
# api_error_total_number = models.CharField("失败总数", max_length=100, null=True, blank=True)
# api_successful_total_number = models.CharField("成功总数", max_length=100, null=True, blank=True)
# api_total_number = models.CharField("API总数", max_length=100, null=True, blank=True)
# api_environment_id = models.CharField("API环境", max_length=100, null=True, blank=True)
# update_time = models.DateTimeField(auto_now_add=True)
# create_time = models.DateTimeField("创建时间", auto_now_add=True)
#
# def __str__(self):
# return self.api_test_result_name
#
#
# class APITestResultAssociated(models.Model):
# """
# API测试结果关联表
# """
# api_test_case_name = models.CharField("api测试用例名称", max_length=100, blank=False, default="")
# api_task = models.ForeignKey(APITestTask, on_delete=models.CASCADE)
# api_result = models.ForeignKey(APITestResult, on_delete=models.CASCADE)
# api_error = models.CharField("失败", max_length=100, null=True, blank=True)
# api_successful = models.CharField("成功", max_length=100, null=True, blank=True)
# abnormal = models.TextField("异常", max_length=5000, null=True, blank=True)
# json_extract_variable_conversion = models.TextField("json提取变量转换",
# max_length=5000, null=True, blank=True)
# api_assertion_results = models.TextField("断言结果", max_length=5000, null=True, blank=True)
# api_variable_results = models.TextField("参数提取", max_length=5000, null=True, blank=True)
# api_request_results = models.JSONField("API请求结果", null=True, default=None)
# api_business_test_name = models.TextField("API业务测试名称", max_length=5000, null=True, blank=True)
# api_header = models.TextField("header", max_length=5000, null=True, blank=True)
# api_url = models.TextField("请求地址", max_length=5000, null=True, blank=True)
# api_body = models.TextField("body", max_length=5000, null=True, blank=True)
# update_time = models.DateTimeField(auto_now_add=True)
# create_time = models.DateTimeField("创建时间", auto_now_add=True)
#
# def __str__(self):
# return self.api_test_case_name
# -*- coding: utf-8 -*-
"""
@Time : 2021/6/21 11:10
@Auth : WangYingHao
@File :__init__.py.py
@IDE :PyCharm
"""
# -*- coding: utf-8 -*-
"""
@Time : 2021/6/21 11:10
@Auth : WangYingHao
@File :api_business_test_url.py
@IDE :PyCharm
"""
"""
8.19 弃用
"""
# from django.urls import path
# from automated_main.view.api_automation.api_business_test.api_business_test_list_view import \
# ApiBusinessTestListView
# from automated_main.view.api_automation.api_business_test.api_business_test_view import GetApiBusinessTestSelectData,\
# ApiBusinessTestView, ApiBusinessTestDebugView
# urlpatterns = [
# # API业务测试
# path("api/backend/api_business_test/list/<int:api_project_id>/",
# ApiBusinessTestListView.as_view()),
# path("api/backend/api_business_test/get_api_test_business_test_select_data/<int:api_project_id>/",
# GetApiBusinessTestSelectData.as_view()),
# path("api/backend/api_business_test/", ApiBusinessTestView.as_view()),
# path("api/backend/api_business_test/<int:api_business_test_id>/", ApiBusinessTestView.as_view()),
# path("api/backend/api_business_test/api_business_test_debug/", ApiBusinessTestDebugView.as_view()),
# ]
# -*- coding: utf-8 -*-
# @Time : 2021/10/22 9:53
# @Author : wangyinghao
# @File : api_database_url.py
# @Software: PyCharm
from django.urls import path
from automated_main.view.api_automation.api_database.api_database_list_view import ApiDatabaseListView
from automated_main.view.api_automation.api_database.api_database_view import ApiDatabaseView, DatabaseProcessingView
urlpatterns = [
# 获取api数据库列表
path("api/backend/api_database/list/", ApiDatabaseListView.as_view()),
path("api/backend/api_database/", ApiDatabaseView.as_view()),
path("api/backend/api_database/<int:api_database_id>/", ApiDatabaseView.as_view()),
path("api/backend/api_debug_database/", DatabaseProcessingView.as_view()),
]
# -*- coding: utf-8 -*-
"""
@Time : 2021/6/21 11:10
@Auth : WangYingHao
@File :api_environment_url.py
@IDE :PyCharm
"""
from django.urls import path
from automated_main.view.api_automation.api_environment.api_environment_list_view import ApiEnvironmentListView
from automated_main.view.api_automation.api_environment.api_environment_view import ApiEnvironmentView
urlpatterns = [
# 获取api环境列表
path("api/backend/api_environment/list/", ApiEnvironmentListView.as_view()),
path("api/backend/api_environment/", ApiEnvironmentView.as_view()),
path("api/backend/api_environment/<int:api_environment_id>/", ApiEnvironmentView.as_view()),
]
# -*- coding: utf-8 -*-
# @Time : 2022/5/24 21:36
# @Author : wangyinghao
# @File : api_management_url.py
# @Software: PyCharm
from django.urls import path
from automated_main.view.api_automation.api_management.api_management_detail_view import ApiManagementView
from automated_main.view.api_automation.api_management.api_management_list_view import ApiManagementListView, ApiManagementSearchView,ApiManagementJudgeView, ApiManagementStructureDataEditView, ApiYaPiInterfaceView, YaPiInterfaceBasicInformationView
from automated_main.view.api_automation.api_management.api_interfaces_case_list_view import ApiInterfacesListView
from automated_main.view.api_automation.api_management.api_interfaces_case_view import ApiInterfacesCaseView, ApiInterfacesCaseDeBugView
urlpatterns = [
# 获取接口服务列表
path("api/backend/api_management/list/", ApiManagementListView.as_view()),
# 变更/获取 单个服务
path("api/backend/api_management/<int:api_management_id>/", ApiManagementView.as_view()),
# 获取接口测试用例列表
path("api/backend/apiInterfacesList/<int:api_server_id>/", ApiInterfacesListView.as_view()),
# 复制用例
path("api/backend/apiInterfacesCopyCase/", ApiInterfacesListView.as_view()),
# 创建接口测试用例
path("api/backend/apiInterfacesCase/", ApiInterfacesCaseView.as_view()),
# 获取接口测试用例
path("api/backend/apiInterfacesCase/<int:api_interfaces_case_id>/", ApiInterfacesCaseView.as_view()),
# 获取调试测试用例 debug
path("api/backend/apiInterfacesCase/debug/", ApiInterfacesCaseDeBugView.as_view()),
# 搜索-服务树行结构
path("api/backend/apiManagementSearch/", ApiManagementSearchView.as_view()),
# 判断 父节点 是否可创建用例(只有用例节点才可创建用例)
path("api/backend/apiManagement/JudgeAddCases/", ApiManagementJudgeView.as_view()),
# tree树结构变更
path("api/backend/apiManagement/ApiManagementStructureDataEdit/", ApiManagementStructureDataEditView.as_view()),
# 获取YAPI接口基础信息
path("api/backend/apiManagement/yaPiInterfaceBasicInformation/", YaPiInterfaceBasicInformationView.as_view()),
# YAPI接口-新增/修改 到tree树
path("api/backend/apiManagement/apiYaPiInterface/", ApiYaPiInterfaceView.as_view()),
]
# -*- coding: utf-8 -*-
"""
@Time : 2021/6/21 11:10
@Auth : WangYingHao
@File :api_module_url.py
@IDE :PyCharm
"""
"""
8.19 弃用
"""
# from django.urls import path
# from automated_main.view.api_automation.api_module.api_module_list_view import ApiModuleListView
# from automated_main.view.api_automation.api_module.api_module_view import ApiModuleView
# from automated_main.view.api_automation.api_module.api_module_view import ApiProjectModuleView
# urlpatterns = [
#
# # API模块
# path("api/backend/api_module/list/", ApiModuleListView.as_view()),
# path("api/backend/api_module/", ApiModuleView.as_view()),
# path("api/backend/api_module/<int:api_module_id>/", ApiModuleView.as_view()),
#
# # 获取 单个api项目中包含得所有模块
# path("api/backend/api_project/api_module/<int:api_project_id>/<int:size_page>/<int:page>/", ApiProjectModuleView.as_view()),
# ]
# -*- coding: utf-8 -*-
# @Time : 2022/7/21 15:34
# @Author : wangyinghao
# @Site :
# @File : api_plan_url.py
# @Software: PyCharm
from django.urls import path
from automated_main.view.api_automation.api_test_plan.api_test_plan_view import APITestPlanSuspended, ApiTestPlanView, GetScenariosCaseTree, PerformApiPlan, CheckApiPlanResultList, CheckApiResult, CheckApiResultErrorList
from automated_main.view.api_automation.api_test_plan.api_test_plan_list_view import ApiTestPlanListView
urlpatterns = [
# 测试计划-删除/编辑/获取
path("api/backend/api_test_plan/<int:api_test_plan_id>/", ApiTestPlanView.as_view()),
# 新增测试计划
path("api/backend/api_test_plan/", ApiTestPlanView.as_view()),
# 暂停测试计划
path("api/backend/api_test_plan/suspended/", APITestPlanSuspended.as_view()),
# 获取项目下所有测试计划
path("api/backend/api_test_plan/list/<int:api_management_id>/", ApiTestPlanListView.as_view()),
# 场景用例树结构
path("api/backend/api_test_plan/get_scenarios_case_tree/<int:api_management_id>/", GetScenariosCaseTree.as_view()),
path("api/backend/api_test_plan/post_scenarios_case_tree/<int:api_test_plan_id>/", GetScenariosCaseTree.as_view()),
# API-执行测试计划
path("api/backend/api_test_plan/perform_api_test_plan/<int:api_test_plan_id>/", PerformApiPlan.as_view()),
# API-执行所有测试计划
path("api/backend/api_test_plan/perform_api_test_plan_all/", PerformApiPlan.as_view()),
# 测试计划报告列表
path("api/backend/api_test_plan/check_result_list/<int:api_test_plan_id>/<int:size_page>/<int:page>/",
CheckApiPlanResultList.as_view()),
# API测试计划-查看单独测试计划报告
path("api/backend/api_test_plan/check_result/<int:api_test_result_id>/<int:size_page>/<int:page>/",
CheckApiResult.as_view()),
path("api/backend/api_test_plan/single_check_result/<int:api_test_case_result_id>/", CheckApiResult.as_view()),
path("api/backend/api_test_plan/check_result/<int:api_test_result_id>/", CheckApiResult.as_view()),
# 查看失败报告
path("api/backend/api_test_plan/check_result/error/<int:api_test_result_id>/<int:size_page>/<int:page>/",
CheckApiResultErrorList.as_view()),
]
\ No newline at end of file
# -*- coding: utf-8 -*-
"""
@Time : 2021/6/21 11:11
@Auth : WangYingHao
@File :api_project_url.py
@IDE :PyCharm
"""
"""
8.19 弃用
"""
# from django.urls import path
# from automated_main.view.api_automation.api_project.api_project_view import ApiProjectView
# from automated_main.view.api_automation.api_project.api_project_list_view import ApiProjectListView
# urlpatterns = [
#
# # API项目
# path("api/backend/api_project/", ApiProjectView.as_view()),
# path("api/backend/api_project/<int:api_project_id>/", ApiProjectView.as_view()),
# path("api/backend/api_project/list/", ApiProjectListView.as_view()),
# ]
# -*- coding: utf-8 -*-
# @Time : 2022/7/19 13:47
# @Author : wangyinghao
# @Site :
# @File : api_scenarios_case_url.py
# @Software: PyCharm
from django.urls import path
from automated_main.view.api_automation.api_scenario_use_case.api_scenarios_case_list_view import ApiScenariosCaseListView, InterfacesProjectListView, ServiceModuleInterfacesCaseRelationshipView, ApiScenariosCaseCopyView
from automated_main.view.api_automation.api_scenario_use_case.api_scenarios_case_view import ApiScenariosCaseView, ApiScenariosCaseGetView, ApiScenariosCaseDebugView
urlpatterns = [
# 获取接口测试用例列表 4级目录 tree树
path("api/backend/api_scenarios_case/list/", ApiScenariosCaseListView.as_view()),
# 获取接口项目列表
path("api/backend/InterfacesProjectList/list/", InterfacesProjectListView.as_view()),
# 创建场景用例
path("api/backend/api_scenarios_case/", ApiScenariosCaseView.as_view()),
# 删除/编辑 场景接口测试用例
path("api/backend/api_scenarios_case/<int:scenarios_case_id>/", ApiScenariosCaseView.as_view()),
# 获取单个场景接口测试用例-组装
path("api/backend/api_single_scenarios_case/<int:scenarios_case_id>/", ApiScenariosCaseGetView.as_view()),
# 获取场景接口测试用例列表
path("api/backend/interfaces_scenarios_case/list/<int:api_management_id>/", ApiScenariosCaseView.as_view()),
# 场景接口用例debug
path("api/backend/interfaces_scenarios_case/interfaces_scenarios_case_debug/", ApiScenariosCaseDebugView.as_view()),
# 场景接口-服务-模块-接口-用例 关系
path("api/backend/interfaces_scenarios_case/ServiceModuleInterfacesCaseRelationship/", ServiceModuleInterfacesCaseRelationshipView.as_view()),
# Copy-复制 场景用例
path("api/backend/copy_interfaces_scenarios_case/", ApiScenariosCaseCopyView.as_view()),
]
# -*- coding: utf-8 -*-
"""
@Time : 2021/6/21 11:11
@Auth : WangYingHao
@File :api_test_case_url.py
@IDE :PyCharm
"""
"""
8.19 弃用
"""
# from django.urls import path
# from automated_main.view.api_automation.api_test_case.api_test_case_list_view import ApiTestCaseListView
# from automated_main.view.api_automation.api_test_case.api_test_case_view import ApiTestCaseView, ApiTestCaseDeBugView, UploadTestCases, DownloadApiCaseTemplate
# urlpatterns = [
# # API测试用例
# path("api/backend/api_test_case/list/<int:api_module_id>/", ApiTestCaseListView.as_view()),
# path("api/backend/api_test_case/<int:api_test_case_id>/", ApiTestCaseView.as_view()),
# path("api/backend/api_test_case/", ApiTestCaseView.as_view()),
# path("api/backend/api_test_case/debug/", ApiTestCaseDeBugView.as_view()),
# # 上传API测试用例
# path("api/backend/api_test_case/upload_test_cases/", UploadTestCases.as_view(), name="upload"),
#
# # 导入API测试用例
# path("api/backend/api_test_case/upload_api_case_import/", UploadTestCases.as_view()),
#
# # 下载web脚本模板
# path("api/backend/api_test_case/api_test_case_template/download_api_case_template/",
# DownloadApiCaseTemplate.as_view()),
# ]
# # -*- coding: utf-8 -*-
# """
# @Time : 2021/6/21 11:11
# @Auth : WangYingHao
# @File :api_test_task_url.py
# @IDE :PyCharm
#
# """
# from django.urls import path
# """
# 8.19 弃用
# """
# # from automated_main.view.api_automation.api_test_task.api_test_task_list_view import ApiTestTaskListView
# from automated_main.view.api_automation.api_test_task.api_test_task_view import ApiTestTaskView, APITestTaskSuspended, GetApiCaseTree, CheckApiResultList, CheckApiResult, PerformApiTask, CheckApiResultErrorList, ApiServiceChangesTask
# from automated_main.view.api_automation.api_data_synchronization.api_data_synchronization_view import ApiDataSynchronization, ApiScenarioSynchronization
#
#
# urlpatterns = [
# # API任务管理
#
# # path("api/backend/api_test_task/list/<int:api_project_id>/", ApiTestTaskListView.as_view()),
# path("api/backend/api_test_task/<int:api_test_task_id>/", ApiTestTaskView.as_view()),
# path("api/backend/api_test_task/", ApiTestTaskView.as_view()),
# path("api/backend/api_test_task/suspended/", APITestTaskSuspended.as_view()),
#
# path("api/backend/api_test_task/get_api_case_tree/<int:api_project_id>/", GetApiCaseTree.as_view()),
# path("api/backend/api_test_task/get_api_case_tree/<int:api_test_task_id>/", GetApiCaseTree.as_view()),
#
# # API任务管理-查看报告列表
# path("api/backend/api_test_task/check_result_list/<int:api_test_task_id>/<int:size_page>/<int:page>/", CheckApiResultList.as_view()),
#
# # API任务管理-查看单独测试报告
# path("api/backend/api_test_task/check_result/<int:api_test_result_id>/<int:size_page>/<int:page>/", CheckApiResult.as_view()),
# path("api/backend/api_test_task/check_result/<int:api_test_result_id>/", CheckApiResult.as_view()),
# path("api/backend/api_test_task/single_check_result/<int:api_test_case_result_id>/", CheckApiResult.as_view()),
# # 查看失败报告
# path("api/backend/api_test_task/check_result/error/<int:api_test_result_id>/<int:size_page>/<int:page>/", CheckApiResultErrorList.as_view()),
#
# # API任务管理-执行任务
# path("api/backend/api_test_task/perform_api_task/<int:api_test_task_id>/", PerformApiTask.as_view()),
#
# # API任务管理-执行所有任务
# path("api/backend/api_test_task/perform_all_api_task/", PerformApiTask.as_view()),
#
# # API任务管理-执行服务有更改的接口
# path("api/backend/api_test_task/api_service_changes_task/", ApiServiceChangesTask.as_view()),
#
# # API数据同步-8.4弃用
# path("api/backend/apiDataSynchronization/", ApiDataSynchronization.as_view()),
#
# # API场景数据同步-8.5弃用
# path("api/backend/apiScenarioDataSynchronization/", ApiScenarioSynchronization.as_view()),
#
# ]
# -*- coding: utf-8 -*-
# @Time : 2021/3/2 18:39
# @Author : wangyinghao
# @FileName: __init__.py.py
# @Software: PyCharm
# -*- coding: utf-8 -*-
# @Time : 2021/4/14 18:55
# @Author : wangyinghao
# @FileName: __init__.py.py
# @Software: PyCharm
# -*- coding: utf-8 -*-
# @Time : 2021/4/14 18:59
# @Author : wangyinghao
# @FileName: api_business_test_list_view.py
# @Software: PyCharm
"""
8.19 弃用
"""
# from django.views.decorators.csrf import csrf_exempt
# from django.views.generic import View
# from automated_main.utils.http_format import response_success
# from automated_main.models.api_automation.api_business_test import ApiBusinessTest
# import arrow
# class ApiBusinessTestListView(View):
# def get(self, request, api_project_id, *args, **kwargs):
# """
# 代表获取该项目下所有API业务测试
# :param request:
# :param api_project_id: api项目id
# :param args:
# :param kwargs:
# :return:
# """
#
# api_business_case = ApiBusinessTest.objects.filter(api_project_id=api_project_id).order_by('-id')
# api_business_case_list = []
#
# for api_business_cases in api_business_case:
# ui_test_cases_dict = {
# "id": api_business_cases.id,
# "api_business_test_name": api_business_cases.api_business_test_name,
# "api_project_id": api_business_cases.api_project.id,
# "api_project_name": api_business_cases.api_project.api_project_name,
# "api_business_test_describe": api_business_cases.api_business_test_describe,
# "update_time": arrow.get(str(api_business_cases.updata_time)).format('YYYY-MM-DD HH:mm:ss'),
# "create_time": arrow.get(str(api_business_cases.create_time)).format('YYYY-MM-DD HH:mm:ss')
# }
# api_business_case_list.append(ui_test_cases_dict)
#
# return response_success(api_business_case_list)
# -*- coding: utf-8 -*-
# @Time : 2022/7/25 10:39
# @Author : wangyinghao
# @Site :
# @File : __init__.py.py
# @Software: PyCharm
# -*- coding: utf-8 -*-
# @Time : 2021/10/21 17:05
# @Author : wangyinghao
# @File : api_database_list_view.py
# @Software: PyCharm
from django.views.generic import View
from automated_main.utils.http_format import response_success
from automated_main.models.api_automation.api_database import APIDatabase
import arrow
class ApiDatabaseListView(View):
def get(self, request, *args, **kwargs):
"""
代表获取所有Api数据库列表
:param request:
:param args:
:param kwargs:
:return:
"""
api_database = APIDatabase.objects.all()
api_database_list = []
for api_databases in api_database:
api_database_dict = {
"id": api_databases.id,
"api_database_title": api_databases.api_database_title,
"api_host": api_databases.api_host,
"user": api_databases.user,
"password": api_databases.password,
"database": api_databases.database,
"updata_time": arrow.get(str(api_databases.updata_time)).format('YYYY-MM-DD HH:mm:ss'),
"create_time": arrow.get(str(api_databases.create_time)).format('YYYY-MM-DD HH:mm:ss'),
}
api_database_list.append(api_database_dict)
return response_success(api_database_list)
# -*- coding: utf-8 -*-
# @Time : 2021/10/21 17:24
# @Author : wangyinghao
# @File : api_database_view.py
# @Software: PyCharm
from django.views.generic import View
import json
from django.forms import model_to_dict
from automated_main.utils.http_format import response_success
from automated_main.exception.my_exception import MyException
from automated_main.models.api_automation.api_database import APIDatabase
from automated_main.form.api_database import ApiDatabaseForm
from automated_main.utils.handle_db import HandleDB
class ApiDatabaseView(View):
def get(self, request, api_database_id, *args, **kwargs):
"""
代表获取单个API数据库
:param request:
:param api_database_id:数据库的id
:param args:
:param kwargs:
:return:
"""
api_database = APIDatabase.objects.filter(id=api_database_id).first()
if api_database is None:
return response_success()
else:
return response_success(model_to_dict(api_database))
def post(self, request, api_database_id, *args, **kwargs):
"""
代表更改API数据库
:param request:
:param api_database_id:
:param args:
:param kwargs:
:return:
"""
api_database = APIDatabase.objects.filter(id=api_database_id).first()
if api_database is None:
return response_success()
body = request.body
if not body:
return response_success()
data = json.loads(body)
form = ApiDatabaseForm(data)
if form.is_valid():
APIDatabase.objects.filter(id=api_database_id).update(**form.cleaned_data)
return response_success("编辑成功")
else:
raise MyException()
def delete(self, request, api_database_id, *args, **kwargs):
"""
代表删除单独API数据库
:param request:
:param api_database_id: API数据库ID
:param args:
:param kwargs:
:return:
"""
APIDatabase.objects.filter(id=api_database_id).delete()
return response_success("删除成功")
def put(self, request, *args, **kwargs):
"""
代表创建API数据库
:param request:
:param args:
:param kwargs:
:return:
"""
body = request.body
if not body:
return response_success()
data = json.loads(body)
form = ApiDatabaseForm(data)
if form.is_valid():
APIDatabase.objects.create(**form.cleaned_data)
return response_success("创建成功")
else:
raise MyException(message="创建失败")
class DatabaseProcessingView(View):
def post(self, request, *args, **kwargs):
"""
连接数据库
:param request:
:param args:
:param kwargs:
:return:
"""
body = request.body
if not body:
return response_success()
data = json.loads(body)
db = HandleDB(data['api_host'], int(data['api_port']), data['user'], data['password'], data['database'])
sql = 'SELECT VERSION()'
try:
db.execution_results(sql)
db.close()
return response_success("调试成功")
except Exception as e:
print(e)
pass
return MyException(40000, message="调试失败")
# -*- coding: utf-8 -*-
# @Time : 2021/3/25 15:27
# @Author : wangyinghao
# @FileName: __init__.py.py
# @Software: PyCharm
# -*- coding: utf-8 -*-
# @Time : 2021/3/25 15:27
# @Author : wangyinghao
# @FileName: api_environment_list_view.py
# @Software: PyCharm
from django.views.generic import View
from automated_main.utils.http_format import response_success
from automated_main.models.api_automation.api_environment import APIEnvironment
import arrow
class ApiEnvironmentListView(View):
def get(self, request, *args, **kwargs):
"""
代表获取所有Api环境列表
:param request:
:param args:
:param kwargs:
:return:
"""
api_environment = APIEnvironment.objects.all().order_by('-id')
api_environment_list = []
for api_environments in api_environment:
api_environment_dict = {
"id": api_environments.id,
"api_environment_name": api_environments.api_environment_name,
"api_title": api_environments.api_title,
"api_environment_describe": api_environments.api_environment_describe,
"update_time": arrow.get(str(api_environments.update_time)).format('YYYY-MM-DD HH:mm:ss'),
"create_time": arrow.get(str(api_environments.create_time)).format('YYYY-MM-DD HH:mm:ss'),
}
api_environment_list.append(api_environment_dict)
return response_success(api_environment_list)
# -*- coding: utf-8 -*-
# @Time : 2021/3/25 15:28
# @Author : wangyinghao
# @FileName: api_environment_view.py
# @Software: PyCharm
from django.views.generic import View
import json
from django.forms import model_to_dict
from automated_main.utils.http_format import response_success
from automated_main.exception.my_exception import MyException
from automated_main.models.api_automation.api_environment import APIEnvironment
from automated_main.models.api_automation.api_environment import APIGlobalVariable
from automated_main.form.api_environment import ApiEnvironmentForm
class ApiEnvironmentView(View):
def get(self, request, api_environment_id, *args, **kwargs):
"""
代表获取单个API环境
:param request:
:param api_environment_id:
:param args:
:param kwargs:
:return:
"""
api_environment = APIEnvironment.objects.filter(id=api_environment_id).first()
api_environment_data = model_to_dict(api_environment)
api_global_variable = APIGlobalVariable.objects.filter(api_environment_id=api_environment_id)
global_variable_list = []
if api_global_variable.count() == 0:
global_variable_dict = {
"api_global_variable_name": "",
"api_global_variable_value": "",
"api_global_variable_describe": ""
}
global_variable_list.append(global_variable_dict)
api_environment_data["global_variable"] = global_variable_list
else:
for global_variable in api_global_variable:
global_variable_dict = {
"api_global_variable_name": global_variable.api_global_variable_name,
"api_global_variable_value": global_variable.api_global_variable_value,
"api_global_variable_describe": global_variable.api_global_variable_describe
}
global_variable_list.append(global_variable_dict)
api_environment_data["global_variable"] = global_variable_list
if api_environment is None:
return response_success()
else:
return response_success(api_environment_data)
def post(self, request, api_environment_id, *args, **kwargs):
"""
代表更改API环境
:param request:
:param api_environment_id:
:param args:
:param kwargs:
:return:
"""
api_environment = APIEnvironment.objects.filter(id=api_environment_id).first()
if api_environment is None:
return response_success()
body = request.body
if not body:
return response_success()
data = json.loads(body)
form = ApiEnvironmentForm(data)
if form.is_valid():
APIEnvironment.objects.filter(id=api_environment_id).update(**form.cleaned_data)
if APIGlobalVariable.objects.filter(api_environment_id=api_environment_id).count() >= 0:
APIGlobalVariable.objects.filter(api_environment_id=api_environment_id).delete()
for global_variable in data['global_variable_data']:
APIGlobalVariable.objects.create(
api_environment_id=api_environment_id,
api_global_variable_name=global_variable['api_global_variable_name'],
api_global_variable_value=global_variable['api_global_variable_value'],
api_global_variable_describe=global_variable['api_global_variable_describe'],
)
return response_success("编辑API环境成功")
else:
raise MyException()
def delete(self, request, api_environment_id, *args, **kwargs):
"""
代表删除单独API环境
:param request:
:param api_environment_id: API环境ID
:param args:
:param kwargs:
:return:
"""
APIEnvironment.objects.filter(id=api_environment_id).delete()
return response_success("删除API环境成功")
def put(self, request, *args, **kwargs):
"""
代表创建API环境
:param request:
:param args:
:param kwargs:
:return:
"""
body = request.body
if not body:
return response_success()
data = json.loads(body)
form = ApiEnvironmentForm(data)
if form.is_valid():
api_environment = APIEnvironment.objects.create(**form.cleaned_data)
api_environment.save()
if APIGlobalVariable.objects.filter(api_environment_id=api_environment.id).count() >= 0:
APIGlobalVariable.objects.filter(api_environment_id=api_environment.id).delete()
for global_variable in data['global_variable_data']:
APIGlobalVariable.objects.create(
api_environment_id=api_environment.id,
api_global_variable_name=global_variable['api_global_variable_name'],
api_global_variable_value=global_variable['api_global_variable_value'],
api_global_variable_describe=global_variable['api_global_variable_describe'],
)
return response_success("创建成功")
else:
raise MyException(message="创建失败")
# -*- coding: utf-8 -*-
# @Time : 2022/5/24 21:29
# @Author : wangyinghao
# @Site :
# @File : __init__.py.py
# @Software: PyCharm
# -*- coding: utf-8 -*-
# @Time : 2022/7/5 14:00
# @Author : wangyinghao
# @Site :
# @File : api_interfaces_case_list_view.py
# @Software: PyCharm
import datetime
from django.views.generic import View
import json
from automated_main.utils.http_format import response_success
from automated_main.models.api_automation.api_interfaces_case import ApiInterfacesCase, ApiInterfacesParameterData
from automated_main.utils.api_management_utils import ApiManagementUtils
from automated_main.models.api_automation.api_management import ApiManagement
import arrow
class ApiInterfacesListView(View):
def get(self, request, api_server_id, *args, **kwargs):
"""
获取测试用例列表
:param api_server_id: api服务id
:param request:
:param args:
:param kwargs:
:return:
"""
# api_management_id_list = ApiManagementUtils.get_interfaces_case_recursion(api_server_id)
# api_interfaces_cases_list = []
# for api_management_id in api_management_id_list:
# api_interfaces_cases = ApiInterfacesCase.objects.filter(api_management_id=api_management_id)
#
# for interfaces_cases in api_interfaces_cases:
# api_interfaces_cases_dict = {
# "id": interfaces_cases.id,
# "api_interfaces_case_name": interfaces_cases.api_interfaces_case_name,
# "api_test_case_url": interfaces_cases.api_url,
# "api_method": interfaces_cases.api_method,
# "api_documentation": interfaces_cases.api_documentation,
# "update_time": arrow.get(str(interfaces_cases.update_time)).format('YYYY-MM-DD HH:mm:ss'),
# "create_time": arrow.get(str(interfaces_cases.create_time)).format('YYYY-MM-DD HH:mm:ss'),
# }
#
# api_interfaces_cases_list.append(api_interfaces_cases_dict)
# return response_success(api_interfaces_cases_list)
api_interfaces_cases_list = []
api_management_data = ApiManagement.objects.filter(id=api_server_id)
for api_management in api_management_data:
api_management_data_a = ApiManagement.objects.filter(parent=api_management.id)
api_interfaces_cases_list.append(api_management.id)
for api_management_a in api_management_data_a:
api_interfaces_cases_list.append(api_management_a.id)
api_management_data_b = ApiManagement.objects.filter(parent=api_management_a.id)
for api_management_b in api_management_data_b:
api_interfaces_cases_list.append(api_management_b.id)
api_interfaces_cases_data_list = []
for api_management_id in api_interfaces_cases_list:
api_interfaces_cases = ApiInterfacesCase.objects.filter(api_management_id=api_management_id)
for interfaces_cases in api_interfaces_cases:
api_interfaces_cases_dict = {
"id": interfaces_cases.id,
"api_interfaces_case_name": interfaces_cases.api_interfaces_case_name,
"api_test_case_url": interfaces_cases.api_url,
"api_method": interfaces_cases.api_method,
"api_documentation": interfaces_cases.api_documentation,
"update_time": arrow.get(str(interfaces_cases.update_time)).format('YYYY-MM-DD HH:mm:ss'),
"create_time": arrow.get(str(interfaces_cases.create_time)).format('YYYY-MM-DD HH:mm:ss'),
}
api_interfaces_cases_data_list.append(api_interfaces_cases_dict)
return response_success(api_interfaces_cases_data_list)
def post(self, request, *args, **kwargs):
"""
复制用例
:param request:
:param args:
:param kwargs:
:return:
"""
body = request.body
params = json.loads(body)
if params == {}:
pass
else:
api_case_data = ApiInterfacesCase.objects.filter(id=params['case_id'])
for api_case in api_case_data:
copy_api_interfaces_case = ApiInterfacesCase.objects.create(
api_interfaces_case_name=str(api_case.api_interfaces_case_name) + "-Copy",
api_documentation=api_case.api_documentation,
api_management_id=api_case.api_management_id,
api_environment_id=api_case.api_environment_id,
api_method=api_case.api_method,
api_url=api_case.api_url,
api_parameter_types=api_case.api_parameter_types,
api_headers=api_case.api_headers,
api_parameter_body=api_case.api_parameter_body,
api_assert_type=api_case.api_assert_type,
dataBase_id=api_case.dataBase_id,
database_sql=api_case.database_sql,
api_assert_text=api_case.api_assert_text
)
api_interfaces_parameter_data = ApiInterfacesParameterData.objects.filter(
api_test_case_id=params['case_id'])
for api_interfaces_parameter in api_interfaces_parameter_data:
ApiInterfacesParameterData.objects.create(
api_test_case_id=copy_api_interfaces_case.id,
api_parameter_name=api_interfaces_parameter.api_parameter_name,
api_must_parameter=api_interfaces_parameter.api_must_parameter,
api_parameter_value=api_interfaces_parameter.api_parameter_value,
api_field_describe=api_interfaces_parameter.api_field_describe
)
return response_success({"message": "Copy成功!"})
# -*- coding: utf-8 -*-
# @Time : 2022/5/24 21:30
# @Author : wangyinghao
# @Site :
# @File : api_management_detail_view.py
# @Software: PyCharm
from django.views.generic import View
import json
from django.forms import model_to_dict
from automated_main.utils.http_format import response_success, response_failed
from automated_main.exception.my_exception import MyException
from automated_main.form.api_management import ApiManagementForm
from automated_main.models.api_automation.api_management import ApiManagement
from datetime import datetime
class ApiManagementView(View):
def get(self, request, api_management_id, *args, **kwargs):
"""
代表获取单个服务
:param request:
:param api_management_id:
:param args:
:param kwargs:
:return:
"""
try:
api_management = ApiManagement.objects.get(id=api_management_id)
except ApiManagement.DoesNotExist:
return response_failed()
else:
return response_success(model_to_dict(api_management))
def post(self, request, api_management_id, *args, **kwargs):
"""
更新单个服务
:param request:
:param api_management_id:
:param args:
:param kwargs:
:return:
"""
body = request.body
params = json.loads(body)
form = ApiManagementForm(params)
result = form.is_valid()
if result:
api_management_data = ApiManagement.objects.get(id=api_management_id)
api_management_data.name = params['name']
api_management_data.description = params['description']
api_management_data.parent = params['parent']
api_management_data.update_time = datetime.now()
api_management_data.save()
else:
print(form.errors.as_json())
raise MyException()
return response_success()
def delete(self, request, api_management_id, *args, **kwargs):
ApiManagement.objects.filter(id=api_management_id).delete()
ApiManagement.objects.filter(parent=api_management_id).delete()
return response_success()
# -*- coding: utf-8 -*-
# @Time : 2021/3/3 11:01
# @Author : wangyinghao
# @FileName: __init__.py.py
# @Software: PyCharm
# -*- coding: utf-8 -*-
# @Time : 2021/3/3 11:02
# @Author : wangyinghao
# @FileName: api_module_list_view.py
# @Software: PyCharm
"""
8.19 弃用
"""
# from django.views.generic import View
# from automated_main.utils.http_format import response_success
# from automated_main.models.api_automation.api_module import APIModule
# import arrow
#
#
# class ApiModuleListView(View):
#
# def get(self, request, *args, **kwargs):
# """
# 代表获取所有Api模块列表
# :param request:
# :param args:
# :param kwargs:
# :return:
# """
#
# api_module = APIModule.objects.all().order_by('-id')
# api_module_list = []
#
# for api_modules in api_module:
# api_module_dict = {
# "id": api_modules.id,
# "api_module_name": api_modules.ui_page_name,
# "api_module_describe": api_modules.ui_page_describe,
# "updata_time": arrow.get(str(api_modules.updata_time)).format('YYYY-MM-DD HH:mm:ss'),
# "create_time": arrow.get(str(api_modules.create_time)).format('YYYY-MM-DD HH:mm:ss'),
# "api_project_name": api_modules.ui_project.ui_project_name
# }
# api_module_list.append(api_module_dict)
#
# return response_success(api_module_list)
# -*- coding: utf-8 -*-
# @Time : 2021/3/3 11:02
# @Author : wangyinghao
# @FileName: api_module_view.py
# @Software: PyCharm
from django.views.generic import View
import json
from django.forms import model_to_dict
from automated_main.utils.http_format import response_success
from automated_main.exception.my_exception import MyException
from automated_main.models.api_automation.api_module import APIModule
from django.core.paginator import Paginator
import arrow
from automated_main.form.api_module import ApiModuleForm
class ApiModuleView(View):
def get(self, request, api_module_id, *args, **kwargs):
"""
代表获取单个API模块
:param request:
:param api_module_id: API模块ID
:param args:
:param kwargs:
:return:
"""
api_module = APIModule.objects.filter(id=api_module_id).first()
if api_module is None:
return response_success()
else:
return response_success(model_to_dict(api_module))
def post(self, request, api_module_id, *args, **kwargs):
"""
代表更改页面
:param request:
:param api_module_id: API模块ID
:param args:
:param kwargs:
:return:
"""
api_module = APIModule.objects.filter(id=api_module_id).first()
if api_module is None:
return response_success()
body = request.body
if not body:
return response_success()
data = json.loads(body)
form = ApiModuleForm(data)
if form.is_valid():
APIModule.objects.filter(id=api_module_id).update(**form.cleaned_data)
return response_success("编辑API模块成功")
else:
raise MyException()
def delete(self, request, api_module_id, *args, **kwargs):
"""
代表删除单独模块
:param request:
:param api_module_id: API模块ID
:param args:
:param kwargs:
:return:
"""
APIModule.objects.filter(id=api_module_id).delete()
return response_success("删除模块成功")
def put(self, request, *args, **kwargs):
"""
代表创建模块
:param request:
:param args:
:param kwargs:
:return:
"""
body = request.body
if not body:
return response_success()
data = json.loads(body)
form = ApiModuleForm(data)
if form.is_valid():
APIModule.objects.create(**form.cleaned_data)
return response_success("创建成功")
else:
raise MyException(message="创建失败")
class ApiProjectModuleView(View):
def get(self, request, api_project_id, size_page, page, *args, **kwargs):
"""
获取 单个API项目中包含得所有模块
:param page: 页数
:param size_page: 展示条数
:param request:
:param api_project_id: api项目id
:param args:
:param kwargs:
:return:
"""
api_module = APIModule.objects.filter(api_project_id=api_project_id)
api_module_list = []
for api_modules in api_module:
api_module_dict = {
"id": api_modules.id,
"api_project_name": api_modules.api_project.api_project_name,
"api_module_name": api_modules.api_module_name,
"api_module_describe": api_modules.api_module_describe,
"updata_time": arrow.get(str(api_modules.updata_time)).format('YYYY-MM-DD HH:mm:ss'),
"create_time": arrow.get(str(api_modules.create_time)).format('YYYY-MM-DD HH:mm:ss'),
}
api_module_list.append(api_module_dict)
p = Paginator(api_module_list, size_page)
if int(page) > int(p.num_pages):
page1 = p.page(p.num_pages)
current_page = page1.object_list
else:
page1 = p.page(page)
current_page = page1.object_list
total_module = len(api_module_list)
if api_module is None:
return response_success()
else:
return response_success({'status': 200, 'data': current_page, 'total_module': total_module})
# -*- coding: utf-8 -*-
# @Time : 2021/3/2 18:40
# @Author : wangyinghao
# @FileName: __init__.py.py
# @Software: PyCharm
# -*- coding: utf-8 -*-
# @Time : 2021/3/2 18:41
# @Author : wangyinghao
# @FileName: api_project_list_view.py
# @Software: PyCharm
from django.views.generic import View
from automated_main.utils.http_format import response_success
from automated_main.models.api_automation.api_project import APIProject
import arrow
class ApiProjectListView(View):
def get(self, request, *args, **kwargs):
"""
代表获取所有API测试项目列表
:param request:
:param args:
:param kwargs:
:return:
"""
api_projects = APIProject.objects.all().order_by('-id')
api_project_list = []
for api_project in api_projects:
api_project_dict = {
"id": api_project.id,
"api_project_name": api_project.api_project_name,
"describe": api_project.describe,
"updata_time": arrow.get(str(api_project.updata_time)).format('YYYY-MM-DD HH:mm:ss'),
"create_time": arrow.get(str(api_project.create_time)).format('YYYY-MM-DD HH:mm:ss'),
}
api_project_list.append(api_project_dict)
return response_success(api_project_list)
# -*- coding: utf-8 -*-
# @Time : 2021/3/2 18:41
# @Author : wangyinghao
# @FileName: api_project_view.py
# @Software: PyCharm
"""
8.19 弃用
"""
# from django.views.generic import View
# import json
# from django.forms import model_to_dict
# from automated_main.utils.http_format import response_success
# from automated_main.exception.my_exception import MyException
# from automated_main.models.api_automation.api_project import APIProject
# from automated_main.form.api_project import ApiProjectForm
# class ApiProjectView(View):
#
# def get(self, request, api_project_id, *args, **kwargs):
# """
# 代表获取单个API项目
# :param request:
# :param api_project_id: API项目ID
# :param args:
# :param kwargs:
# :return:
# """
#
# api_project = APIProject.objects.filter(id=api_project_id).first()
# if api_project is None:
# return response_success()
# else:
# return response_success(model_to_dict(api_project))
#
# def post(self, request, api_project_id, *args, **kwargs):
# """
# 代表更改API项目
# :param request:
# :param api_project_id:API项目ID
# :param args:
# :param kwargs:
# :return:
# """
#
# api_project = APIProject.objects.filter(id=api_project_id).first()
# if api_project is None:
# return response_success()
# body = request.body
# if not body:
# return response_success()
# data = json.loads(body)
#
# form = ApiProjectForm(data)
#
# if form.is_valid():
#
# APIProject.objects.filter(id=api_project_id).update(**form.cleaned_data)
# return response_success("编辑UI项目成功")
# else:
# raise MyException()
#
# def delete(self, request, api_project_id, *args, **kwargs):
# """
# 代表删除单独API项目
# :param request:
# :param api_project_id: API项目ID
# :param args:
# :param kwargs:
# :return:
# """
#
# APIProject.objects.filter(id=api_project_id).delete()
# return response_success()
#
# def put(self, request, *args, **kwargs):
# """
# 代表创建API项目
# :param request:
# :param args:
# :param kwargs:
# :return:
# """
#
# body = request.body
# if not body:
# return response_success()
# data = json.loads(body)
#
# form = ApiProjectForm(data)
#
# if form.is_valid():
# APIProject.objects.create(**form.cleaned_data)
# return response_success()
# else:
# raise MyException()
# -*- coding: utf-8 -*-
# @Time : 2022/7/19 11:48
# @Author : wangyinghao
# @Site :
# @File : __init__.py.py
# @Software: PyCharm
# -*- coding: utf-8 -*-
# @Time : 2022/7/19 11:49
# @Author : wangyinghao
# @Site :
# @File : api_scenarios_case_list_view.py
# @Software: PyCharm
from django.views.generic import View
import json
from automated_main.utils.http_format import response_success
from automated_main.models.api_automation.api_interfaces_case import ApiInterfacesCase
from automated_main.models.api_automation.api_management import ApiManagement
from automated_main.models.api_automation.api_scenarios_case import ApiScenariosCaseAssociated, ApiScenariosCase
class ApiScenariosCaseListView(View):
def get(self, request, *args, **kwargs):
"""
代表获取所有API接口用例tree-一级目录
:param request:
:param args:
:param kwargs:
:return:
"""
api_management_data = ApiManagement.objects.filter(parent=0).order_by('-id')
api_management_list = []
for api_management in api_management_data:
api_management_dict = {
"id": api_management.id,
"name": api_management.name,
"parent": api_management.parent,
"description": api_management.description,
"icon": "el-icon-folder-opened"
}
api_management_list.append(api_management_dict)
return response_success(api_management_list)
def post(self, request, *args, **kwargs):
"""
代表获取所有API接口用例tree-用例
:param request:
:param args:
:param kwargs:
:return:
"""
body = request.body
params = json.loads(body)
api_interfaces_case_list = []
if params == {}:
pass
else:
api_interfaces_case_data = ApiInterfacesCase.objects.filter(api_management_id=params['parent'])
for api_interfaces_case in api_interfaces_case_data:
api_interfaces_case_dict = {
"case_id": api_interfaces_case.id,
"id": api_interfaces_case.id,
"name": api_interfaces_case.api_interfaces_case_name,
"children": "",
"isParent": True,
"icon": "el-icon-tickets"
}
api_interfaces_case_list.append(api_interfaces_case_dict)
return response_success(api_interfaces_case_list)
class InterfacesProjectListView(View):
def get(self, request, *args, **kwargs):
"""
代表获取所有API接口项目列表
:param request:
:param args:
:param kwargs:
:return:
"""
api_management = ApiManagement.objects.filter(parent=0)
api_management_data_list = []
for api_management_data in api_management:
api_management_dict = {
"api_management_id": api_management_data.id,
"api_management_name": api_management_data.name,
}
api_management_data_list.append(api_management_dict)
return response_success(api_management_data_list)
class ServiceModuleInterfacesCaseRelationshipView(View):
def post(self, request, *args, **kwargs):
"""
代表获取 服务、模块、接口、用例关系
:param request:
:param args:
:param kwargs:
:return:
"""
body = request.body
params = json.loads(body)
api_case = ApiInterfacesCase.objects.get(id=params['case_id'])
interfaces_name = ApiManagement.objects.get(id=api_case.api_management_id)
api_module_name = ApiManagement.objects.get(id=interfaces_name.parent)
api_service_name = ApiManagement.objects.get(id=api_module_name.parent)
api_management_dict = {
"interfaces_name": interfaces_name.name,
"api_module_name": api_module_name.name,
"api_service_name": api_service_name.name,
}
return response_success(api_management_dict)
class ApiScenariosCaseCopyView(View):
def post(self, request, *args, **kwargs):
"""
Copy场景用例
:param request:
:param args:
:param kwargs:
:return:
"""
body = request.body
params = json.loads(body)
api_scenarios_case_data = ApiScenariosCase.objects.filter(id=params['sid_id'])
for api_scenarios_case in api_scenarios_case_data:
api_scenarios_case_copy = ApiScenariosCase.objects.create(
api_scenarios_case_name=str(api_scenarios_case.api_scenarios_case_name) + "-Copy",
api_scenarios_case_describe=api_scenarios_case.api_scenarios_case_describe,
api_management_id=api_scenarios_case.api_management_id
)
api_scenarios_case_associated_copy = ApiScenariosCaseAssociated.objects.filter(sid_id=params['sid_id'])
for api_scenarios_case_associated in api_scenarios_case_associated_copy:
ApiScenariosCaseAssociated.objects.create(sid_id=api_scenarios_case_copy.id,
interfaces_case_id=api_scenarios_case_associated.interfaces_case_id,
case_steps=api_scenarios_case_associated.case_steps)
return response_success({"message": "Copy成功!"})
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment