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)——后台管理系统功能设计
还是老规矩先吐下槽,在规范的开发过程中,这个时候应该是编写总体设计(概要设计)的时候,不过对于中小型项目来说,过于规范的遵守软件工程,编写太多文档也会拉长进度,一般会将它与详细设计合并到一起来处理,所 ...
随机推荐
- Maven中基于POM.xml的Profile来动态切换配置信息
[转载:https://blog.csdn.net/blueheart20/article/details/52838093] 1. Maven中的profile设置 Maven是目前主流的项目代码结 ...
- 洛谷P3627[APOI2009] (讨厌的)抢掠计划
题目描述 Siruseri 城中的道路都是单向的.不同的道路由路口连接.按照法律的规定, 在每个路口都设立了一个 Siruseri 银行的 ATM 取款机.令人奇怪的是,Siruseri 的酒吧也都设 ...
- learning makefile 模式规则
- abap将内表数据导出为excel文件
一个不错的方案: WHEN 'EXPORT'. "导出数据 DATA : GT_TEMP TYPE TABLE OF TY_ITEM WITH HEADER LINE. LOOP AT GT ...
- 总结AWS使用要点
最近做毕业设计,要用AWS跑代码,以前只用过一次,这次踩了很多坑,记录一下.. AWS命令行管理S3 bucket AWS官方文档: http://docs.amazonaws.cn/cli/late ...
- C#中d的??和?
在C#中??和?分别是什么意思? 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; 是正确的,int i=nu ...
- DCOMP——分散式计算
新型网络DCOMP 据国外媒体2017年11月7日报道,曾经发明互联网的秘密机构“美国国防部高级研究计划局(DARPA)”如今正致力于研发能够完胜互联网的新网络,并且启动了一项链接物联网.智能手机.智 ...
- input输入框失去焦点,软键盘关闭后,滚动的页面无法恢复到原来位置
H5微信页面开发,软键盘弹起后,若原输入框被遮挡,页面整体将会上移,然而当输入框失焦,软键盘收起后,页面未恢复,导致弹框里的按钮响应区域错位. 解决方案:给输入框(或select选择框)添加失去焦点的 ...
- css中的宽高以及百分比参照
百分比数参照物 父元素宽度:padding,margin,width,text-indent 父元素高度:height 自身:transform中的translate() 其他单位 vh ...
- java线程入门一
线程优先级: 在JAVA线程中,通过一个int型变量priority来控制线程优先级,线程的有限机为1-10,默认为5,优先级高的线程获得的运行时间要高于优先级低的线程.但这只是一个提示,操作系统和J ...