README.md 7.6 KB
Newer Older
泰斯特Test's avatar
泰斯特Test 已提交
1
# Taisite-Platform
泰斯特Test's avatar
泰斯特Test 已提交
2

泰斯特Test's avatar
泰斯特Test 已提交
3
## Ⅰ. 泰斯特平台简介
泰斯特Test's avatar
泰斯特Test 已提交
4

泰斯特Test's avatar
泰斯特Test 已提交
5 6 7 8 9 10 11 12 13 14 15
「泰斯特平台」是一个由「同时拥有丰富 软件测试 & 机器学习 经验的软件爱好者」开发的自动化测试平台。
 
 平台遵循「前后端分离开发」思想,技术栈为:「Python + Vue + Mongodb」,后端开发使用的是轻量级 Web 框架 Flask,
前端 UI 框架则采用的是易上手的 ElementUi。
    
 
 
 平台致力于将人工智能技术与软件测试有效结合,让平台在保障测试精确性要求的同时更具智能化、泛化能力。
 致力于成为让使用者拥有 **最佳使用体验** 的自动化测试解决方案。目标是成为 **最贴心、最智能、颜值最高**的开源测试平台。
    
## Ⅱ. 泰斯特平台特点 (os:和其他测试平台有什么区别?)
泰斯特Test's avatar
泰斯特Test 已提交
16

泰斯特Test's avatar
泰斯特Test 已提交
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
 1.平台遵循「小而精」的策略,最大化所有功能的开发、使用性价比,可帮助小型测试团队快速搭建起易于上手 / 维护的
 自动化测试体系。
 
 2.平台遵循「颜值即正义」原则,操作界面展示如下:
 
 ![操作界面展示](https://github.com/amazingTest/Taisite-Platform/blob/master/images/操作界面展示.png)
 
 3.平台拥有极佳的定时任务体验,启动定时任务后可随时停用 / 任意编辑任务内容且立即生效,同时拥有丰富的告警策略,
 页面展示如下:
 
 ![定时任务配置](https://github.com/amazingTest/Taisite-Platform/blob/master/images/定时任务配置.png)
 
 4.平台拥有丰富、详细、集中、实用的测试报告内容,展示如下:
 
 ![测试报告展示](https://github.com/amazingTest/Taisite-Platform/blob/master/images/测试报告展示.png)
 
 5.平台支持用例导入 / 导出功能,统一使用 Excel 格式,易于批量生成 / 修改用例。
 
 ![数据导入展示](https://github.com/amazingTest/Taisite-Platform/blob/master/images/数据导入展示.png)
 
 6.平台拥有丰富的测试结果校验体系,同时支持**文本相似度**校验方法,
 具体内容可参考[这篇博文](https://juejin.im/post/5cfe1dd96fb9a07ed7407321)
 
 7.......
 
 ***泰斯特平台还有许许多多令人惊喜的小特色等着你去探索 & 挖掘***
 

## Ⅱ. 泰斯特平台功能图解
    
    
    

## 
泰斯特Test's avatar
泰斯特Test 已提交
51

泰斯特Test's avatar
泰斯特Test 已提交
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
## 泰斯特平台部署

### windows 环境下部署
    
#### 1. 安装 python 3.6 环境

#### 2. 启动自然语言模型

##### 2.1 [点击下载压缩包](https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip)

##### 2.2 解压压缩包

##### 2.3 安装 python 依赖包

    pip install tensorflow==1.11  -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip install bert-serving-server -i https://pypi.tuna.tsinghua.edu.cn/simple
    
##### 2.4 启动模型
    
    // 当前目录切换至模型文件夹目录后执行
    bert-serving-start -model_dir ./chinese_L-12_H-768_A-12/ -num_worker=1
    
启动成功后输出如下:

![NLP模型启动成功输出](https://github.com/amazingTest/Taisite-Platform/blob/master/images/NLP模型启动成功输出.png)
 
#### 3. 部署 Mongo 数据库

#### 4. 设置系统环境变量
    
	AUTOTEST_PLATFORM_NLP_SERVER=127.0.0.1
    AUTOTEST_PLATFORM_MONGO_HOST=${MONGO_HOST}
    AUTOTEST_PLATFORM_MONGO_PORT=${MONGO_PORT}
    AUTOTEST_PLATFORM_MONGO_USERNAME=${USERNAME}
    AUTOTEST_PLATFORM_MONGO_PASSWORD=${PASSWORD}
    AUTOTEST_PLATFORM_MONGO_DEFAULT_DBNAME=${DBNAME}
	
设置完成后需重启电脑生效,可通过下列命令进行测试输出(CMD切换至项目根目录下)

	python ./backend/config.py
	
若配置成功则可看到配置的值

#### 5. 打包前端dist文件

##### 5.1 安装Vue环境,下载node.js并配置环境,下载npm包管理器

##### 5.2 cmd进入frontend目录下,配置 cnpm:
        
    npm install -g cnpm --registry=https://registry.npm.taobao.org    
        
##### 5.3 cmd进入frontend目录下,执行安装依赖包命令:

    cnpm install
    
##### 5.4 cmd进入frontend目录下,执行打包命令:

    cnpm run build

若成功打包则会在项目根目录下生成 dist 文件夹
   
#### 6. 启动后端

##### 6.1 安装后端依赖包
    
    // 切换至项目根目录下执行
    pip install -r ./backend/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    // 创建管理员帐号( 注意查看输出,记录下帐号密码 )
    python ./backend/createAdminUser.py
    // 启动后端 ( 默认5050端口 )
    python ./backend/run.py
    
#### 7. 访问项目

现在就可以访问 [http://127.0.0.1:5050/login](http://127.0.0.1:5050/login) 进行登录
    
### Linux 环境下 Docker 容器化部署 
泰斯特Test's avatar
泰斯特Test 已提交
129 130 131

[Docker 安装指南](https://www.runoob.com/docker/ubuntu-docker-install.html)

泰斯特Test's avatar
泰斯特Test 已提交
132
#### 1. 自然语言模型部署
泰斯特Test's avatar
泰斯特Test 已提交
133 134 135 136 137

	sudo -i
	docker pull shaoyuyishiwo/bertserver
	docker run --name autotest-platform-bertserver -d shaoyuyishiwo/bertserver 

泰斯特Test's avatar
泰斯特Test 已提交
138
#### 2. Mongo 数据库部署 (若已有现成数据库可用则可跳过此步)
泰斯特Test's avatar
泰斯特Test 已提交
139
  
泰斯特Test's avatar
泰斯特Test 已提交
140
##### 2.1 启动数据库 & 数据挂载至宿主机
泰斯特Test's avatar
泰斯特Test 已提交
141 142 143 144 145
    
    sudo -i
    docker pull mongo 
    docker run  --name autotest-platform-mongo -p 27017:27017 -v /data/db:/data/db -v /data/configdb:/data/configdb ``-d mongo
  
泰斯特Test's avatar
泰斯特Test 已提交
146
##### 2.2 创建数据库帐号
泰斯特Test's avatar
泰斯特Test 已提交
147 148

	docker exec -it autotest-platform-mongo /bin/bash
泰斯特Test's avatar
泰斯特Test 已提交
149 150 151
	
    mongo
    
泰斯特Test's avatar
泰斯特Test 已提交
152 153 154 155 156 157 158 159
	> use admin
  
	switched to db admin
  
    > db.createUser({user:"${USERNAME}",pwd:"${PASSWORD}",roles:["root"]})
  
	Successfully added user: { "user" : "admin", "roles" : [ "root" ] }

泰斯特Test's avatar
泰斯特Test 已提交
160
##### 2.3 数据库内存扩容(建议)
泰斯特Test's avatar
泰斯特Test 已提交
161 162 163 164 165 166
  
    > db.adminCommand({setParameter:1, internalQueryExecMaxBlockingSortBytes:335544320})
    
    { "was" : 33554432, "ok" : 1 }
 

泰斯特Test's avatar
泰斯特Test 已提交
167
#### 3. 环境变量配置
泰斯特Test's avatar
泰斯特Test 已提交
168
  
泰斯特Test's avatar
泰斯特Test 已提交
169
    // 编辑 /etc/profile 文件
泰斯特Test's avatar
泰斯特Test 已提交
170 171 172 173 174
    sudo -i
    vi /etc/profile
  
  若出现警告则选择 (E)dit anyway (输入 E)
  
泰斯特Test's avatar
泰斯特Test 已提交
175
  ##### 3.1 文本末端插入下列数据 (输入 i 则变为 insert 状态)
泰斯特Test's avatar
泰斯特Test 已提交
176 177 178
  
    export AUTOTEST_PLATFORM_NLP_HOST=${BERT_IPADRESS}
    export AUTOTEST_PLATFORM_MONGO_HOST=${MONGO_HOST}
泰斯特Test's avatar
泰斯特Test 已提交
179
    export AUTOTEST_PLATFORM_MONGO_PORT=${MONGO_PORT}
泰斯特Test's avatar
泰斯特Test 已提交
180 181
    export AUTOTEST_PLATFORM_MONGO_USERNAME=${USERNAME}
    export AUTOTEST_PLATFORM_MONGO_PASSWORD=${PASSWORD}
泰斯特Test's avatar
泰斯特Test 已提交
182
    export AUTOTEST_PLATFORM_MONGO_DEFAULT_DBNAME=${DBNAME}
泰斯特Test's avatar
泰斯特Test 已提交
183
	
泰斯特Test's avatar
泰斯特Test 已提交
184 185
  变量为动态值,部署者自行根据实际情况输入,${DBNAME} 值可任意自定义(数据库表名),
  其中 ${BERT_IPADRESS} 和 ${MONGO_HOST} 值可通过下列命令查询:
泰斯特Test's avatar
泰斯特Test 已提交
186 187
  
    docker inspect autotest-platform-bertserver
泰斯特Test's avatar
泰斯特Test 已提交
188
    docker inspect autotest-platform-mongo // 若使用了上面的步骤部署数据库
泰斯特Test's avatar
泰斯特Test 已提交
189
  
泰斯特Test's avatar
泰斯特Test 已提交
190
  输出如下图所示:
泰斯特Test's avatar
泰斯特Test 已提交
191
  
泰斯特Test's avatar
泰斯特Test 已提交
192
  ![控制台输出1](https://github.com/amazingTest/Taisite-Platform/blob/master/images/控制台输出1.png)
泰斯特Test's avatar
泰斯特Test 已提交
193
  
泰斯特Test's avatar
泰斯特Test 已提交
194
  ##### 3.2 插入完毕后点击 ESC 按钮、输入 :wq 后单击回车保存
泰斯特Test's avatar
泰斯特Test 已提交
195
  
泰斯特Test's avatar
泰斯特Test 已提交
196
  ##### 3.3 执行下列命令后环境变量立即生效
泰斯特Test's avatar
泰斯特Test 已提交
197
 
泰斯特Test's avatar
泰斯特Test 已提交
198
    source /etc/profile
泰斯特Test's avatar
泰斯特Test 已提交
199

泰斯特Test's avatar
泰斯特Test 已提交
200 201 202
#### 4. 启动项目
    
    //克隆项目
泰斯特Test's avatar
泰斯特Test 已提交
203
    git clone https://github.com/amazingTest/Taisite-Platform.git
泰斯特Test's avatar
泰斯特Test 已提交
204 205
    
    //执行部署文件
泰斯特Test's avatar
泰斯特Test 已提交
206
    sh deploy ${PORT} 
泰斯特Test's avatar
泰斯特Test 已提交
207
    
泰斯特Test's avatar
泰斯特Test 已提交
208
  其中 ${PORT} 变量填写项目访问端口即可,项目启动的同时也创建了管理员帐号,如下图所示:
泰斯特Test's avatar
泰斯特Test 已提交
209
  
泰斯特Test's avatar
泰斯特Test 已提交
210
  ![控制台输出2](https://github.com/amazingTest/Taisite-Platform/blob/master/images/控制台输出2.png)
泰斯特Test's avatar
泰斯特Test 已提交
211
  
泰斯特Test's avatar
泰斯特Test 已提交
212 213 214 215 216 217
#### 5. 访问项目

浏览器访问部署服务器地址的 ${PORT} 端口后使用「4.启动项目」中创建的帐号密码登陆即可

![平台登录界面](https://github.com/amazingTest/Taisite-Platform/blob/master/images/平台登录界面.png)

泰斯特Test's avatar
泰斯特Test 已提交
218

泰斯特Test's avatar
泰斯特Test 已提交
219
## Ⅱ. 泰斯特平台使用教程
泰斯特Test's avatar
泰斯特Test 已提交
220

泰斯特Test's avatar
泰斯特Test 已提交
221 222
    主流程使用可参考[这篇博文](https://juejin.im/post/5cd0117be51d456e537ef3bd)
    详细的教程后续补上:)
泰斯特Test's avatar
泰斯特Test 已提交
223 224


泰斯特Test's avatar
泰斯特Test 已提交
225 226 227 228