测试平台开发

常用技术架构与组件

前端技术架构 bootstrap antd vue react
后端技术架构 django flask spring boot
数据存储 mysql es neo4j
任务调度架构 jenkins
数据报表 echarts vega kibana grafana


测试平台基本流程

后端开发主要技术点

  • 页面渲染:客户端渲染页面(SPA) 服务端渲染页面(模板技术)
  • 数据库连接技术:数据库连接池 数据访问
  • 服务管理:接口 路由 协议
  • 异步任务调度:异步 同步 回调
开发框架
  • 迷你型
    • python Flask
    • java sparkjava
  • 大而全的框架
    • python django
    • java spring全家桶
Flask
  • 路由:get post path 权限控制
  • 请求: get请求 form请求 json请求 cookie管理
  • session: 基于cookie的session机制
  • 模板技术:jinjia2 mustache 建议使用独立的前端技术框架构建SPA
from flask import Flask,escape,request

app=Flask(__name__)

@app.route('/')
def hello():
    name=request.args.get("name","World")
    return f'Hello ,{escape(name)}!'

运行方法:

set FLASK_APP=test_flask.py
flask run

访问方法:


访问效果
数据持久化

传统数据库连接方式:pymysql 纯sql
ORM模型:sqlalchemy mybatis hebernate

pymysql

connect cursor(游标) excute(执行) fetch(获取结果)

import pymysql

db = pymysql.connect(host='localhost',
                     user='user',
                     password='password',
                     db='db',
                     charset='utf8mb4',
                     cursorclass=pymysql.cursors.DictCursor)

def test_db():
    with db.cursor() as cursor:
        #create a new record
        sql = 'show tables'
        cursor.excute(sql)
        res=cursor.fetchall()
        print(res)

def test_select():
    with db.cursor() as cursor:
        #create a new record
        sql = 'select * from table1 where name=%s'
        cursor.excute(sql,["name1"])
        res=cursor.fetchall()
        print(res)
ORM 对象关系映射(object-relational mapping)

简介
是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”
ORM模型,脱离SQL,编程模式


连接池管理
from sqlalchemy import create_eninge
from sqlalchemy import Column,Integer,String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

host='localhost'
user='username'
password='password'
db='dbname'
charset='utf8mb4'

Base=declarative_base()

#声明表结构
class User(Base):
    __tablename__ ='tablename1'
    id = Column(Integer,primary_key=True)
    username=Column(String)
    password=Column(String)
    email=Column(String)

def test_orm():
    engine = create_eninge('mysql+pymysql"//{user}:{password}@{host}/{db}'.format(host=host,db=db,user=user,password=password),echo=True)
    #sessionmaker 创建连接
    Session = sessionmaker(bind=engine)
    session=Session()
    #数据插入
    u1=User(
        username='name1',
        password='pwd1',
        email='123@123'
    )
    session.add(u1)
    session.commit()
    #数据查询
    u2=session.query(User).filter_by(username='name1').first()
    print(u2.username)

前端开发主要技术点

vue.js框架

  • vue.js是一套用于构建用户界面的渐进式框架
  • 被设计成自顶向上逐层应用
  • 核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合
  • 学习vue.js 需要一定的html、css、javascript基础
    MVVM模式

    常用组件库
    ElementUI:https://element.eleme.io/#/
    Bootstrap Vue:https://bootstrap-vue.org/
    Vuetify:https://vuetifyjs.com/zh-Hans/
    安装方法
    1.cdn
使用最新版

使用明确版本号和构建文件,避免新版本造成的不可预期的破坏

2.npm
通过webpack和CLI安装使用
使用

  • 创建挂载元素
  • 引入vue.js
  • 创建一个vue实例


{{msg}}

vue内部指令

  • v-if v-else 元素是否存在 不存在的话不会在dom元素中展示
  • v-show 元素是否显示 不管是否显示都会在dom元素中展示
  • v-for 循环
  • v-on 绑定事件 可以简写成@
  • v-bind 绑定动态属性 可以简写成:
  • v-model 绑定数据 可以绑定数据,若是数据发生更改,也随之更改


{{msg}}
展示
不展示
show展示

{{value}}:{{index}}

{{value}}:{{key}}

{{value.name}}:{{value.age}}:{{value.sex}}

{{count}}

vue生命周期

  • beforeCreate
  • created
  • beforeMount 在dom元素加载完成之前
  • mounted
  • beforeUpdate
  • updated
  • beforeDestroy
  • destroyed
    用法示例:

                    
                    

你可能感兴趣的:(测试平台开发)