【django实战之对接公司性能数据】

发布于:2022-08-02 ⋅ 阅读:(323) ⋅ 点赞:(0)

前言

公司急速扩展壮大,新员工对于性能的掌握及其有限,即使告诉他需要打什么数据,打多少量的数据,都要不断的进行指导,本工程对接的意义在于减少新员工学习成本,可以让新员工能迅速上手打压数据干活,从中再去慢慢理解脚本和其实现原理。

一、先上成果

性能脚本对接
界面及其建议,用最简单的html写成,底下具体过程会贴code。使用方式:输入系统基本信息,paas和saas以及mysql用户名密码,点击下方输入框或下拉框以及功能块的提交,即可直接对应数据量的打压,实现对应业务的数据。由于是半成品,界面简单粗糙,先实现了模型,后领导并不大力支持,于是搁置。

二、dangjo工程结构

django结构
主要内容就是django工程,外加对接的数据构造脚本(addData.py)。

三、对接原理

1.addData存放构造数据脚本

# -*- coding:utf-8 -*-
"""
使用说明:本文件配合func_vsl-2.0.0-py3.8.egg和TesterTools-2.2.0-py3.7.egg使用
主要用来添加或删除组织和设备,添加设备前需添加好组织,设备会平均分散在各个组织,删除组织前需先删除设备
"""

from func_vsl.vsl_func.rf_vsl import *

"""
平台及数据库参数基本配置
Username 平台用户名
Password 平台密码
ServiceIp 平台服务器ip
ServicePort 平台端口
db_ip nms数据库ip(新版本数据库已合并,同平台一致)
db_user 数据库用户
db_passwd 数据库密码
"""
genrator = GenerateData(Username='system', Password='system123', ServiceIp='10.80.59.141', ServicePort='8320',
                        db_ip='10.80.59.141', db_user='DHCloudkR', db_passwd='Cloud0#w8qNzCFA')

# 设置添加省组织是陕西省'61',组织默认添加4级
genrator.set_org('61')
# 插入组织,4级下级组织会一并插入
genrator.insert_orgs()
# 添加设备,参数为添加设备的数量
genrator.add_many_devices(10)
# 删除设备
genrator.delete_dev()
# 删除组织
genrator.delete_org(u'自动化测试省')

例如这一段,是构造添加组织和设备的数据构造脚本。

2.views调用addData或models实现业务逻辑


```python
from time import sleep

from django.http import HttpResponse
from django.shortcuts import render

# Create your views here.


from func_vsl.vsl_func.rf_vsl import *

from addData.addData import genrator

status = ''


def homepage(request):
    return redirect('/nms/')


def nms(request):
    global status
    return render(request, 'nms/nms.html', {'status': status})


from django.shortcuts import redirect


# 添加设备
def add_org(request):
    """
    平台及数据库参数基本配置
    Username 平台用户名
    Password 平台密码
    ServiceIp 平台服务器ip
    ServicePort 平台端口
    db_ip nms数据库ip(新版本数据库已合并,同平台一致)
    db_user 数据库用户
    db_passwd 数据库密码
    """
    # genrator = GenerateData(Username='system', Password='Gauss@234', ServiceIp='10.80.50.58', ServicePort='8320',
    #                         db_ip='10.80.50.5', db_user='DHCloudMq', db_passwd='Cloud0#Mmp9sQNx')
    print('添加组织')
    try:
        global status
        status = '添加中,请勿重复点击'
        return redirect('/nms/')
        # return HttpResponse('正在添加,稍安勿躁;继续其他操作')
    finally:
        # 设置添加省组织是陕西省'61',组织默认添加4级
        genrator.set_org('61')
        return redirect('/nms/')

3.urls指向你访问的网页

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$',views.homepage),
    url(r'^addorg/$', views.add_org),
    url(r'^nms/$', views.nms),
    url(r'^nms/$', views.nms),

]

4.templates负责界面展示给用户

例,贴nms.html

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>智能运维性能脚本</title>
	</head>
	<body>
		<h1 align="center">智能运维性能脚本</h1>
        <h3>系统基本信息</h3>
		<form action="#" method="POST">
			vsl用户名
			<input type="text" name="vsl_user">
			vsl密码
			<input type="text" name="vsl_passwd">
			<br/>
			nms用户名
			<input type="text" name="nms_user">
			nms密码
			<input type="text" name="nms_passwd">
			<br/>
			mysql用户名
			<input type="text" name="mysql_user">
			mysql密码
			<input type="text" name="mysql_passwd">
		</form>
		<h4>1.设备操作</h4>
		<form action="/addorg/" method="GET">
			添加 <select>
				<option value="shanxi">陕西省</option>
			</select>组织
			<input type="submit" value="提交">
            {{status}}
		</form>
		<form action="#" method="POST">
			输入添加数量(建议少于1w)
			<input type="text" name="dev_num">
			<input type="submit" value="提交">
		</form>
		<form action="#" method="POST">
			添加设备唯一编码(全部设备)
			<!-- <input type="text" name="num"> -->
			<input type="submit" value="提交">
			<h4>2.工单</h4>
		</form>
		<form action="#" method="POST">
			添加工单(数量)
			<input type="text" name="workflow_num">
			<input type="submit" value="提交">
		</form>
		<h4>3.报警</h4>
		<form action="#" method="POST">
			报警总数
			<input type="text" name="alarm_num">
			报警平均分配天数
			<input type="text" name="alarm_day_num">
			<input type="submit" value="提交">
		</form>
		<h4>4.地图</h4>
		<form action="#" method="POST">
			更新GPS(数量1w)
			<!-- <input type="text" name="num"> -->
			<input type="submit" value="提交">
		</form>
		<h4>4.录像存储</h4>
		<form action="#" method="POST">
			录像片段总数=天数*通道数(每天一条记录)<br />
			天数
			<input type="text" name="video_day_num">
			通道数
			<input type="text" name="video_dev_num">
			<input type="submit" value="提交">
		</form>
		<h4>4.在离线</h4>
		<form action="#" method="POST">
			总数=通道数*天数<br />
			天数
			<input type="text" name="online_day_num">
			通道数
			<input type="text" name="online_dev_num">
			<input type="submit" value="提交">
		</form>
	</body>
</html>

四、雏形初成

以上就是django对接性能脚本打压数据的雏形,了解django模型(Model), 视图(View)和控制器(Controller)即MVC等概念后,比较容易搭建。具体对接还未完成,上述简述过原因,领导不大力支持。各功能之间可以同步进行,直接调用异步任务add_job就可以,新人也能瞬间做到性能数据的打压。

后期分享django环境搭建及实现原理。


网站公告

今日签到

点亮在社区的每一天
去签到