美文网首页软件测试
使用Django快速完成测试数据构造(一)

使用Django快速完成测试数据构造(一)

作者: 下午茶_da6d | 来源:发表于2019-11-12 17:11 被阅读0次

身为中台测试,很多功能需要依赖前端数据支撑,可以说是“测试5分钟,造数半小时”,实在无法忍受,于是学习了python Django框架,想做一个页面化的工具一键生成想要的数据,于是结合自身技能get情况、寻找最快实现方案,列了个list:
1.python Django框架,网上找一些视频教程,参考书推荐虫师的《python web接口开发与测试》
2.实现前端页面,想要做一个左边菜单右边页面的布局,回顾html、css实现左右布局页面,bootstrap实现一些如菜单展示收起效果、下拉列表等类型通用控件功能
然后就开始行动,遇到问题千万不要退缩,网上有很多解决攻略的哦。

------第一阶段:实现简单功能-以页面创建用户为例展开分享------

一、Django环境搭建:

完成python、django、pycharm工具安装
请自行百度,攻略很多

二、Django基础

2.1 Django工程目录

(1)创建工程:django-admin.py startproject testtools
(2)工程目录:

图片.png
init.py: 初始化文件 同样也标志我们的app可以被引用
django默认使用SQLite,连接我们mysql数据库在此文件添加如下代码:
 import pymysql
 pymysql.install_as_MySQLdb()

setting.py:Django配置文件,配置app、数据库等, django默认使用SQLite,连接我们mysql数据库-db_Hdf库需要修改DATABASES为:

DATABASES = {
      'default': {                                  
           'ENGINE': 'django.db.backends.mysql',
           'NAME': 'dbname',
           'USER': 'username',
           'PASSWORD': 'pwd',
           'HOST': 'ip地址',
           'PORT': '3306',
                 }
}

urls.py:Django项目的url声明
manage.py:命令行工具,如可以使用python manage.py startapp user创建user应用

2.2 Django应用目录

(1)创建应用:python manage.py startapp user
(2)应用目录:

图片.png
migrations.py:用于记录models中数据的变更,如创建模型:

admin.py:映射models中的数据到Django自带的admin后台
http://127.0.0.1:8000/admin/ 我们用不到,有兴趣的请自行研究
# Generated by Django 2.2.2 on 2019-06-09 02:48
from django.db import migrations, models

class Migration(migrations.Migration):
    initial = True
    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='User',
            fields=[
                ('userId', models.AutoField(primary_key=True, serialize=False)),
                ('userName', models.TextField()),
                ('createTime', models.DateTimeField()),
            ],
        ),
    ]

apps.py:用于应用程序配置,我们不需要操作此文件
models.py:模型文件–模型文件中的类对应数据库中的表,如

from django.db import models

# Create your models here.

#创建User类
# class User(models.Model):
#     #userId --数字类型,自增,主键
#     userId = models.AutoField(primary_key=True)
#     #userName--字符串类型
#     userName = models.TextField()
#     #userMobile--字符串类型
#     userMobile = models.TextField
#     #createTime--日期类型
#     createTime = models.DateTimeField(auto_now=True)
#     其他字段......
class User(models.Model):
    get_latest_by = '字段名'
    变量userid = models.AutoField(db_column='userId数据库字段名', primary_key=True)  # Field name made lowercase.
    变量username = models.CharField(db_column='userName数据库字段', unique=True, max_length=50)  # Field name made lowercase.
。。。其他字段

    class Meta:
        managed = False
        db_table = 'tab_User'

views.py:Django的视图文件,控制前端页面响应交互
另外,除以上自带目录外,我们需要创建tempaltes目录,需在此目录下Django模板
(3)在Django工程setting.py中添加应用user:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'user',
]

三、Django的MTV模式:

M(Modle):模型类-对应数据库表,类属性–表字段,
T(Tempalte):Django模版–html页面
V(View):视图函数,控制前端页面的展示
说明:Django的Controller通过urls.py直接进行配置

四、已有数据库如何自动生成模型:

使用命令:python manage.py inspectdb > user/models.py
执行后查看models.py文件,已有用户表所在库所有表对应的模型
----模型数据就绪

五、Django模板编写

布局:实现点击左侧导航“创建用户”-右侧显示创建用户页面:
在tempaltes目录下创建main.html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>主页面</title>
    <style>
        div{
            margin: 0px;
        }
        #top{
            width: 100%;
            height: 50px;
          background-color: azure;
        }
        #center{
            width: 100%;
            height: 500px;
            background-color: azure;
        }
        #left{
            width: 20%;
            background-color: cadetblue;
            height: 500px;
            float: left;
        }
        #right {
            width: 80%;
            background-color: azure;
            height: 500px;
            float: left;
        }
        iframe {
            background-color: cornsilk;
            height: 500px;
            width:100%;
            float: left;
        }
    </style>
</head>
<body>
<!-- 2-2布局 -->
<div id="top">
    <header>
        <h1 align="center">中台造数工具</h1>
    </header>
</div>
<div id="center">
    <div id="left">
        <ul>用户管理模块
            <!-- href属性设置跳转页面链接,target属性设置显示位置-->
  <li><a href="/user/createuser/" target="iframe_right">创建用户</a></li> 
        </ul> 
    </div>
    <div id="right">
        <!-- iframe设置name属性,其他元素将target属性设置为iframe元素的name值来显示在iframe中-->
 <iframe name="iframe_right"></iframe>
    </div>
</div>
</body>
</html>

2.创建createuser.html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>创建用户</title>
</head>
<body>
<h2>创建用户</h2>
<form method="POST" action="/user/createuser_action/">
    <input type="text" name="userName" placeholder="请输入用户名" />
    <button type="submit">添加</button>
    <div> <h1>{{ message }}</h1></div>
</form>
</body>
</html>

六、编写试图函数控制页面展示及用户输入后处理函数

views.py中添加
createuser()和createuser_action()函数
显示页面、处理表单提交请求添加用户

from django.shortcuts import render
from .models import TabUser
'''
author:xxx
功能:
1.创建新用户
创建日期:xxxx-xx-xx
最新修改:xxxx-xx-xx  by xxx
'''

# Create your views here.
def index(request):
    response = render(request,"main.html")
    return response

#显示添加用户页面
def createuser(req):
    return render(req, "createuser.html")

#创建新用户
def createuser_action(request):

    #接收用户输入值
  userName = request.POST.get("userName","")

    try:
        #取最大userid+1作为新用户的userid
        userId = TabUser.objects.order_by('-userid')[0].fld_userid + 1
        # 增加数据并保存
        TabUser.objects.create(userid=userId, username=userName)
        message = "添加成功,userName:" + str(userName) + ",userId:" + str(userId)

    except Exception:
        message = "添加失败,请检查填写信息,或该用户名已存在!"
 
 return render(request, "createuser.html", {"message": message})

七、配置路由

Django项目setting.py中按照如下进行路由配置:

from django.contrib import admin
from django.urls import path
from user import views

urlpatterns = [
    path(r"index/",views.index),
    path(r"user/createuser/",views.createuser),
    path(r"user/createuser_action/", views.createuser_action),
]

八、运行项目:

python manage.py runserver
浏览器访问:http://127.0.0.1:8000/index/
添加用户你就可以使用啦

图片.png

(PS:使其他人使用只需要在setting.py中添加如下代码,
启动命令 python manage.py runserver 0.0.0.0:8000即可)

ALLOWED_HOSTS = ["*", ]

九、拓展:平台还以做什么:

1.完成数据构造

类型1:数据处理单一

--如单纯的像数据库中插入数据,按照如上流程开发即可

类型2:数据处理复杂

如创建xx类型xx交流中的一个功能,要提交订单、支付、后台审核、接单才能得到我们想要的数据,真实场景会向多个数据库插入数据,此类数据构造,需要使用python模拟客户端请求,下次再做改分享

2.远程执行脚本等

比如输入云主机地址,选择要执行的脚本(可以做成下拉列表),输入脚本参数等,一键执行脚本

相关文章

  • 使用Django快速完成测试数据构造(一)

    身为中台测试,很多功能需要依赖前端数据支撑,可以说是“测试5分钟,造数半小时”,实在无法忍受,于是学习了pytho...

  • 使用Django快速完成测试数据构造(二)

    作为一枚中台测试,我们的功能太过依赖上游数据,比如我只需要测试支付,但必须要一步步填写各种资料提交订单才可以测支付...

  • Django单元测试中Fixtures用法

    在使用单元测试时,有时候需要测试数据库中有数据,这时我们可以使用Django的Fixtures来生成测试数据。 基...

  • JMeter造测试数据

    1. 问题 为什么需要造测试数据?如果对数据无特别需求,请忽略本文 如何简单快速构造测试数据? 2. 拆解 将问题...

  • 容量测试

    容量测试 • 模拟真实数据量下的验证。功能测试往往构造几条测试数据,可以完成功能验证即可。但是系统在真正使用时,往...

  • Django框架学习

    界面设计 djngo快速实现--使用Bootstrap 给django增加bootstrap前端框架 Django...

  • django web 模板静态文件加载记录

    工作以来,一直在用django框架写接口,对于django的前端模板文件接触不多,最近在学习使用django快速搭...

  • 01-Django学习笔记

    Django 1. 特点 快速开发:Django的宗旨在于帮助开发人员快速从概念到完成应用程序。 安全可靠:Dja...

  • Django实例-车辆违章查询一

    项目准备工作 1.首先使用pip install django==2.2.9 安装好django 安装完成之后使用...

  • Django-管理站点重写admin模板

    使用Django的admin管理工具,可以快速的构建自己的管理平台,使用Django原生太的模板更能使我们节省很多...

网友评论

    本文标题:使用Django快速完成测试数据构造(一)

    本文链接:https://www.haomeiwen.com/subject/gtlqictx.html