1.测试用例的app名字:Testcase

2.Testcase文件夹下各个文件的代码:

  2.1. __init__.py:

default_app_config = "TestCase.apps.TestcaseConfig"

  2.2. adminx.py

import xadmin
from xadmin import views #导入xadmin中的views,用于和 BaseSettings类绑定 from .models import TestCase #导入测试用例模型
from .models import TestProject #导入测试项目模型
from .models import MoveView #导入动态视图 class TestProjectAdmin(object):
diduan = ['test_project', 'testCase_nums',
'add_time'
]
list_display = diduan #定义显示的字段
search_fields = diduan #定义搜索的字段
list_filter = ['test_project', 'testCase_nums'] #定义筛选的字段 xadmin.site.register(TestProject, TestProjectAdmin) #在xadmin中注册TestCase class TestCaseAdmin(object):
diduan = ['test_project', 'test_module', 'test_function','case_priority','case_title',
'case_precondition', 'case_step', 'case_expected_result', 'case_test_result', 'case_comments',
'add_time'
]
list_display = diduan #定义显示的字段
search_fields = diduan #定义搜索的字段
list_filter = ['test_project', 'test_module', 'case_priority', 'case_test_result'] #定义筛选的字段 xadmin.site.register(TestCase, TestCaseAdmin) #在xadmin中注册TestCase class MoveViewAdmin(object):
diduan = ['test_project','Num']
list_display = diduan #定义显示的字段
search_fields = diduan #定义搜索的字段
list_filter = diduan #定义筛选的字段 xadmin.site.register(MoveView, MoveViewAdmin) #在xadmin中注册MoveView # class BaseSettings(object): #全站的配置类, 配置主题
# enable_themes = True #主题功能,enable_themes=True 表示要使用它的主题功能,xadmin默认是取消掉的
# use_bootswatch = True #xadmin默认是取消掉的
#
# xadmin.site.register(views.BaseAdminView, BaseSettings) #注册BaseSettings
#
#
# class GlobalSettings(object): ##全站的配置类
# site_title = "接口测试后台管理系统" #页面左上角的标题名称
# site_footer = "接口测试网" #页面底部的文字显示内容
# menu_style = "accordion" # 将一个app下的内容收起来
#
# xadmin.site.register(views.CommAdminView, GlobalSettings) #注册GlobalSettings

  2.3. apps.py

from django.apps import AppConfig

class TestcaseConfig(AppConfig):
name = 'TestCase'
verbose_name = u"测试用例"

  2.4. models.py

from datetime import datetime   #导入获取时间包

from django.db import models

# Create your models here.
#
class TestProject(models.Model): # 定义测试项目
test_project = models.CharField(max_length=, verbose_name=u"测试项目")
testCase_nums = models.IntegerField(default=, verbose_name=u"测试用例总数")
add_time = models.DateTimeField(default=datetime.now,
verbose_name=u"创建项目时间") # datetime.now记录实例化时间,datetime.now()记录模型创建时间 class Meta:
verbose_name = u"测试项目"
verbose_name_plural = verbose_name def __str__(self):
return self.test_project class TestCase(models.Model): #定义测试用例
test_project = models.ForeignKey(TestProject,verbose_name=u"测试项目",on_delete=models.CASCADE)
test_module = models.CharField(max_length=, verbose_name=u"测试模块")
test_function = models.CharField(max_length=, verbose_name=u"测试功能点")
case_priority = models.CharField(max_length=,
choices=(("P0", u"冒烟用例"), ("P1", u"系统的重要功能用例") , ("P2", u"系统的一般功能用例"), ("P3", "极低级别的用例")),
default="P1",
verbose_name=u"用例优先级")
case_title = models.CharField(max_length=,verbose_name=u"测试用例_名称")
case_precondition = models.CharField(max_length=,verbose_name=u"测试用例_前置条件")
case_step = models.TextField(default="",verbose_name=u"测试用例_操作步骤")
case_expected_result = models.TextField(default="", verbose_name=u"测试用例_预期结果")
case_test_result = models.CharField(max_length=,
choices=(("Pass", u"测试通过"), ("Fail", u"测试失败"), ("Block", u"用例锁定"), ("NoRun", "未测试")),
default="NoRun",
verbose_name=u"测试用例_测试结果")
case_comments = models.TextField(default=u"测试备注", verbose_name=u"测试备注")
add_time = models.DateTimeField(default=datetime.now, verbose_name=u"编写用例时间") #datetime.now记录实例化时间,datetime.now()记录模型创建时间 class Meta:
verbose_name = u"测试用例"
verbose_name_plural = verbose_name class MoveView(models.Model): # 定义动态视图表
test_project = models.CharField(max_length=, verbose_name=u"测试项目")
Num = models.IntegerField(default=, verbose_name=u"测试用例总数") class Meta:
verbose_name = u"动态视图"
verbose_name_plural = verbose_name
managed = False
db_table = "count_casesnum_project"

  2.5. urls.py

from django.urls import  path

urlpatterns = [
#path('testcase/', OrgView.as_view(), name="test_case"), # 配置课程列表页面的访问路径
] app_name = 'testcast'

3.动态视图数据库表的设计视图语句:

select count(`testcase_testcase`.`case_title`) AS `Num`,`testcase_testproject`.`id` AS `id`,`testcase_testproject`.`test_project` AS `test_project` from (`testcase_testcase` join `testcase_testproject`) where (`testcase_testcase`.`test_project_id` = `testcase_testproject`.`id`) group by `testcase_testproject`.`test_project`

pycharm(pythoon3)_django2.0_xadmin创建测试用例后台管理系统的更多相关文章

  1. 使用moy快速开发后台管理系统(一)

    moy是什么? moy 是基于模型框架 kero 和 UI 框架 neoui 实现的应用框架,是前端集成解决方案,为企业级应用开发而生.github地址:iuap-design/tinper-moy ...

  2. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(4)-构建项目解决方案 创建EF DataBase Frist模式

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(4)-构建项目解决方案 创建EF DataBase Frist模式 进行本次文章之前,我们可能需要补充一些 ...

  3. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发4- 后台模板html页面创建

    上一篇教程<asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发3-登录模块开发>完成了本项目的登录模块,登录后就需要进入后台管理首页了,需要准备一个后台模 ...

  4. admin快速搭建后台管理系统

    一.基于admin后台管理系统的特点: 权限管理:权限管理是后台管理系统必不可少的部分,拥有权限管理,可以赋予用户增删改查表权限(可以分别赋予用户对不同的表有不同的操作权限): 前端样式少:后台管理主 ...

  5. Django2.1.5使用xadmin打造适合国人的后台管理系统

    python做web开发的话,flask.django是比较火的框架了,django是一个比较大的框架,也是一个快速开发利器.但是,django自带的后台admin不太好看,也不太符合我们国人的习惯, ...

  6. ASP.NET MVC5+EF6+EasyUI 后台管理系统(34)-文章发布系统①-简要分析

    系列目录 最新比较闲,为了学习下Android的开发构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(1)-前言与,虽然有点没有目的的学习,但还是了解了Andro ...

  7. ASP.NET MVC5+EF6+EasyUI 后台管理系统(51)-系统升级

    系统很久没有更新内容了,期待已久的更新在今天发布了,最近花了2个月的时间每天一点点,从原有系统 MVC4+EF5+UNITY2.X+Quartz 2.0+easyui 1.3.4无缝接入 MVC5+E ...

  8. ASP.NET MVC5+EF6+EasyUI 后台管理系统(58)-DAL层重构

    系列目录 前言:这是对本文系统一次重要的革新,很久就想要重构数据访问层了,数据访问层重复代码太多.主要集中增删该查每个模块都有,所以本次是为封装相同接口方法 如果你想了解怎么重构普通的接口DAL层请查 ...

  9. 从零开始编写自己的C#框架(8)——后台管理系统功能设计

    还是老规矩先吐下槽,在规范的开发过程中,这个时候应该是编写总体设计(概要设计)的时候,不过对于中小型项目来说,过于规范的遵守软件工程,编写太多文档也会拉长进度,一般会将它与详细设计合并到一起来处理,所 ...

随机推荐

  1. WinForm界面设计优化过程

    以在做的项目为例,记录一下界面美化过程中遇到的问题,由于项目是先做出来之后,又请美工进行稍微调整设计界面,所以会又些限制 1. TabControl的问题----在添加了背景图片后,TabContro ...

  2. Linux安装mysql5.7

    mysql安装排坑,不同版本可能会使用命令不同,这里需要谨慎查阅. 1. 按照需求在mysql官网下载对应linux版本. 2.创建mysql目录,将下载的安装包安装到目录下mkdir /usr/lo ...

  3. pycharm与python环境配置

    一.安装python开发环境 在win7的64位系统上安装,然后用cmd命令提示行输入python,出错,网上给出了解决方案,也操作成功了,但是比较麻烦,没关系,安装Anaconda3即可(默认安装即 ...

  4. closures

     一.什么是闭包和闭包的几种写法和用法 1.什么是闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.闭包的特点: 1. ...

  5. 共识机制:AngelToken技术的根基

    共识机制是区块链技术的一个核心问题,它决定了区块链中区块的生成法则,保证了各节点的诚实性.账本的容错性和系统的稳健性. 常用的共识机制主要有 PoW.PoS.DPoS.Paxos.PBFT等. 基于区 ...

  6. day48-python爬虫学习三

    Python的urllib和urllib2模块都做与请求URL相关的操作,但他们提供不同的功能.他们两个最显着的差异如下: urllib2可以接受一个Request对象,并以此可以来设置一个URL的h ...

  7. vBox Arch UEFI LVM安装

    Table of Contents 介绍 配置 基础 VirtualBox配置 安装准备 基础 分区 格式化 挂载 安装 选择镜像 安装基本系统 配置 fstab chroot 一些配置 lvm2 网 ...

  8. net core 随笔

    UseApplicationInsights  这个有用到azure 才有用, 平时没用的话可以去掉. 遥测. 上下文指的是 进程间占有的资源空间. 当一个进程时间片到了或者资缺的时候就会让出CPU ...

  9. 使用U盘为龙芯笔记本安装操作系统

    摘要:在没有光驱的情况下,可以使用dd命令或者ultraISO软件制作Linux安装U盘,方法适合龙芯和X86.AMD64的设备. 前段时间,由于开发需要,拿到了一部龙芯3A3000的笔记本.出厂的安 ...

  10. C++ 之sizeof运算符

    sizeof运算符用来计算某个对象在内存中占用的字节数. 此运算符的使用形式为:sizeof(类型名)或sizeof(表达式). 计算结果是这个类型或者这个表达式结果在内存中占的字节数.