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. SQL Server 创建索引方法

    转自 <SQL Server 创建索引的 5 种方法> 地址:https://www.cnblogs.com/JiangLe/p/4007091.html 前期准备: create tab ...

  2. bash: ./xxx 权限不够

    Linux环境下要运行C编译的一个可执行文件play,终端cd到当前目录后输入./play,提示  bash: ./xxx 权限不够 用sudo, 提示 sudo:./play: command no ...

  3. 最长绝对文件路径——算法面试刷题1(google),字符串处理,使用tree遍历dfs类似思路

    假设我们通过以下的方式用字符串来抽象我们的文件系统: 字符串"dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext"代表了: dir subdir1 su ...

  4. vue2.0自学笔记

    前言: 一.优点: 轻量级.高效率.上手快.简单易学.文档全面而简洁 二.功能: 1.模板渲染 2.模块化 3.扩展功能:路由.Ajax 三.课程包含: 1.Vue实例 2.Vue组件 3.Vue指令 ...

  5. ereg

    int ereg ( string $pattern , string $string [, array &$regs ] ) Note: 使用 Perl 兼容正则表达式语法的 preg_ma ...

  6. 常用正则表达式 c#

    /// <summary> /// 是否手机号 /// </summary> /// <param name="str"></param& ...

  7. SharedPreference映射Java类

    package com.overlook.weagree.util; import android.app.Activity; import android.content.Context; impo ...

  8. Cronolog日志分割、定时清理

    阿里云发送短信提示服务器磁盘占用到80%警报短信 经过排查发现tomcat日志文件达到10个多G,手动删除过久的日志文件后恢复到50% 但是catalina.out文件还有6个G 解决方法 一.安装C ...

  9. java-js知识库之二——canvas绘制炫彩气泡

    现在使用canvas绘制气泡,虽说很多人都已经实现过了,可能方法都大同小异,但自己写和看别人写完全是两码事,自己会写的才是自己的,话不多说,直接上代码. 先来一张效果图: 现在上代码,代码有详细的注释 ...

  10. MIME 参考手册

    本文摘自http://www.w3school.com.cn/media/media_mimeref.asp MIME (Multipurpose Internet Mail Extensions) ...