pycharm(pythoon3)_django2.0_xadmin创建测试用例后台管理系统
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创建测试用例后台管理系统的更多相关文章
- 使用moy快速开发后台管理系统(一)
moy是什么? moy 是基于模型框架 kero 和 UI 框架 neoui 实现的应用框架,是前端集成解决方案,为企业级应用开发而生.github地址:iuap-design/tinper-moy ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(4)-构建项目解决方案 创建EF DataBase Frist模式
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(4)-构建项目解决方案 创建EF DataBase Frist模式 进行本次文章之前,我们可能需要补充一些 ...
- asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发4- 后台模板html页面创建
上一篇教程<asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发3-登录模块开发>完成了本项目的登录模块,登录后就需要进入后台管理首页了,需要准备一个后台模 ...
- admin快速搭建后台管理系统
一.基于admin后台管理系统的特点: 权限管理:权限管理是后台管理系统必不可少的部分,拥有权限管理,可以赋予用户增删改查表权限(可以分别赋予用户对不同的表有不同的操作权限): 前端样式少:后台管理主 ...
- Django2.1.5使用xadmin打造适合国人的后台管理系统
python做web开发的话,flask.django是比较火的框架了,django是一个比较大的框架,也是一个快速开发利器.但是,django自带的后台admin不太好看,也不太符合我们国人的习惯, ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(34)-文章发布系统①-简要分析
系列目录 最新比较闲,为了学习下Android的开发构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(1)-前言与,虽然有点没有目的的学习,但还是了解了Andro ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(51)-系统升级
系统很久没有更新内容了,期待已久的更新在今天发布了,最近花了2个月的时间每天一点点,从原有系统 MVC4+EF5+UNITY2.X+Quartz 2.0+easyui 1.3.4无缝接入 MVC5+E ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(58)-DAL层重构
系列目录 前言:这是对本文系统一次重要的革新,很久就想要重构数据访问层了,数据访问层重复代码太多.主要集中增删该查每个模块都有,所以本次是为封装相同接口方法 如果你想了解怎么重构普通的接口DAL层请查 ...
- 从零开始编写自己的C#框架(8)——后台管理系统功能设计
还是老规矩先吐下槽,在规范的开发过程中,这个时候应该是编写总体设计(概要设计)的时候,不过对于中小型项目来说,过于规范的遵守软件工程,编写太多文档也会拉长进度,一般会将它与详细设计合并到一起来处理,所 ...
随机推荐
- idea使用eclipse 代码format风格
为了保证大家代码格式一样,避免在合代码时很出现大面积冲突.针对eclipse和idea两种开发工具进行了代码风格统一. Eclipse 使用方法:Windows → Preferences → Jav ...
- 记一次tomcat运行起来了但是项目没起来的问题
解决办法是: 先是tomcat的conf文件夹下的servel.xml中这两个值改成false. 然后重新运行maven的package打包,再运行项目就行了.
- day 11 装饰器
1.day 10 内容复习 # 之前做得的题 以后再遇到能保证会 # 下周二考 :所有的知识 # 面试题:认真对待 # # 三元运算符 # 接收结果的变量 = 条件为真的结果 if 条件 else 条 ...
- cordova/phonegap/webapp性能优化方法
1.有条件可以自己做UI,不要用框架.用框架的话不要用jquery mobile,用sencha touch或者jqmobi(app framework) 2.不要在服务器生成UI,在本地生成. 3. ...
- 学习python D1
shell脚本最擅长移动文件和替换文本,并不适合GUI界面或者游戏开发,Python是一种解释型语言,在程序开发阶段可以为你节省大量时间 Python2的用户输入需要用raw_input()而非inp ...
- Saiku Table展示数据合并bug修复(二十五)
Saiku Table展示数据合并bug修复 Saiku以table的形式展示数据,如果点击了 非空的字段 按钮,则会自动进行数据合并,为空的数据行以及数据列都会自动隐藏掉. 首先我们应该定位问题: ...
- CICD自动化发版系统设计简介
第一篇. 版本迭代是每一个互联网公司必须经历的,尤其是中小型公司,相信不少人踩到过很多坑.接下来的一系列文章将介绍我设计的自动化发版系统! 很多公司没有把配置独立出去,代码的构建.发版通过一个Jenk ...
- [Leetcode 217&219]寻找数组中的重复值Contains Duplicate I & II
[题目1] Given an array of integers, find if the array contains any duplicates. Your function should re ...
- Apache强制WWW跳转以及强制HTTPS加密跳转的方法
一般我会较多的使用WORDPRESS程序,其在安装的时候我们如果直接用WWW打开,或者在后台设置WWW域名则默认会强制301指向WWW站点域名.而这里有使用ZBLOG或者TYPECHO等其他博客程序则 ...
- Quartz定时任务封装
一般的系统都会有一些定时任务,那么我们将这个定时任务封装起来,只要系统需要添加定时任务时,只需调用此方法传入所需要的值即可完成定时任务. 自己自学整理的一些随笔 1.首先对周期粒度进行封装 publ ...