README.md 8.3 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
### 背景

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

泰斯特Test's avatar
泰斯特Test 已提交
8 9 10 11 12
「泰斯特平台」是一个由「软件测试 & 机器学习爱好者」开发的自动化测试平台。

### 愿景

 平台致力于将人工智能技术与软件测试有效结合,让平台在保障测试精确性要求的同时更具智能化、泛化能力,
泰斯特Test's avatar
泰斯特Test 已提交
13
 同时尽可能 **最优化使用体验** ,目标是成为 **最贴心、最好用、颜值最高** 的开源测试平台。
泰斯特Test's avatar
泰斯特Test 已提交
14
 
泰斯特Test's avatar
泰斯特Test 已提交
15 16
### 技术栈

泰斯特Test's avatar
泰斯特Test 已提交
17 18 19 20 21
 平台遵循「前后端分离开发」思想,技术栈为:「Python + Vue + Mongodb」,后端开发使用的是轻量级 Web 框架 Flask,
前端 UI 框架则采用的是易上手的 ElementUi。
    
 
## Ⅱ. 泰斯特平台特点 (os:和其他测试平台有什么区别?)
泰斯特Test's avatar
泰斯特Test 已提交
22

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

泰斯特Test's avatar
泰斯特Test 已提交
49
## Ⅲ .泰斯特平台功能图解
泰斯特Test's avatar
泰斯特Test 已提交
50 51 52
    
    

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

泰斯特Test's avatar
泰斯特Test 已提交
54 55
## IV . 泰斯特平台部署

泰斯特Test's avatar
泰斯特Test 已提交
56 57

### windows 环境下部署
泰斯特Test's avatar
泰斯特Test 已提交
58 59

***
泰斯特Test's avatar
泰斯特Test 已提交
60 61 62

#### 0. 克隆项目

泰斯特Test's avatar
泰斯特Test 已提交
63
    git clone https://github.com/amazingTest/Taisite-Platform.git
泰斯特Test's avatar
泰斯特Test 已提交
64 65 66 67 68 69 70

***

#### 1. 安装 python 3 环境

可参考[该教程](https://www.runoob.com/python3/python3-install.html)

泰斯特Test's avatar
泰斯特Test 已提交
71
***
泰斯特Test's avatar
泰斯特Test 已提交
72

泰斯特Test's avatar
泰斯特Test 已提交
73
#### 2. 部署自然语言模型
泰斯特Test's avatar
泰斯特Test 已提交
74 75 76 77 78 79 80 81

##### 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
泰斯特Test's avatar
泰斯特Test 已提交
82
    pip install bert-serving-server==1.9.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
泰斯特Test's avatar
泰斯特Test 已提交
83 84 85 86 87 88 89 90 91
    
##### 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)
泰斯特Test's avatar
泰斯特Test 已提交
92 93 94

***

泰斯特Test's avatar
泰斯特Test 已提交
95 96
#### 3. 部署 Mongo 数据库

泰斯特Test's avatar
泰斯特Test 已提交
97 98
可参考[该教程](https://www.runoob.com/mongodb/mongodb-window-install.html)

泰斯特Test's avatar
泰斯特Test 已提交
99 100
***

泰斯特Test's avatar
泰斯特Test 已提交
101 102
#### 4. 设置系统环境变量
    
泰斯特Test's avatar
泰斯特Test 已提交
103 104
    AUTOTEST_PLATFORM_ENV=production
    AUTOTEST_PLATFORM_NLP_SERVER=127.0.0.1
泰斯特Test's avatar
泰斯特Test 已提交
105 106 107 108 109 110
    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}
	
泰斯特Test's avatar
泰斯特Test 已提交
111 112
其中 AUTOTEST_PLATFORM_NLP_SERVER(自然语言模型服务)默认为本机启动

泰斯特Test's avatar
泰斯特Test 已提交
113
设置完成后可通过下列命令进行测试(CMD切换至项目根目录下)
泰斯特Test's avatar
泰斯特Test 已提交
114 115 116

	python ./backend/config.py
	
泰斯特Test's avatar
泰斯特Test 已提交
117
若配置成功则可看见输入的配置数据
泰斯特Test's avatar
泰斯特Test 已提交
118

泰斯特Test's avatar
泰斯特Test 已提交
119 120
***

泰斯特Test's avatar
泰斯特Test 已提交
121
#### 5. 打包前端 dist 文件
泰斯特Test's avatar
泰斯特Test 已提交
122

泰斯特Test's avatar
泰斯特Test 已提交
123
##### 5.1 安装 Vue 环境,下载 node.js 并配置环境,下载 npm 包管理器
泰斯特Test's avatar
泰斯特Test 已提交
124

泰斯特Test's avatar
泰斯特Test 已提交
125
##### 5.2 cmd 进入 frontend 目录下,配置 cnpm :
泰斯特Test's avatar
泰斯特Test 已提交
126 127 128
        
    npm install -g cnpm --registry=https://registry.npm.taobao.org    
        
泰斯特Test's avatar
泰斯特Test 已提交
129
##### 5.3 执行安装依赖包命令:
泰斯特Test's avatar
泰斯特Test 已提交
130 131 132

    cnpm install
    
泰斯特Test's avatar
泰斯特Test 已提交
133
##### 5.4 执行打包命令:
泰斯特Test's avatar
泰斯特Test 已提交
134 135 136 137 138

    cnpm run build

若成功打包则会在项目根目录下生成 dist 文件夹
   
泰斯特Test's avatar
泰斯特Test 已提交
139 140
***   
   
泰斯特Test's avatar
泰斯特Test 已提交
141 142 143 144 145 146
#### 6. 启动后端

##### 6.1 安装后端依赖包
    
    // 切换至项目根目录下执行
    pip install -r ./backend/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
泰斯特Test's avatar
泰斯特Test 已提交
147
    
泰斯特Test's avatar
泰斯特Test 已提交
148 149
    // 创建管理员帐号( 注意查看输出,记录下帐号密码 )
    python ./backend/createAdminUser.py
泰斯特Test's avatar
泰斯特Test 已提交
150
    
泰斯特Test's avatar
泰斯特Test 已提交
151 152
    // 启动后端 ( 默认5050端口 )
    python ./backend/run.py
泰斯特Test's avatar
泰斯特Test 已提交
153 154 155
 
***

泰斯特Test's avatar
泰斯特Test 已提交
156 157 158 159 160
#### 7. 访问项目

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

泰斯特Test's avatar
泰斯特Test 已提交
162 163
***

泰斯特Test's avatar
泰斯特Test 已提交
164 165
[Docker 安装指南](https://www.runoob.com/docker/ubuntu-docker-install.html)

泰斯特Test's avatar
泰斯特Test 已提交
166 167
#### 0. 克隆项目

泰斯特Test's avatar
泰斯特Test 已提交
168
    git clone https://github.com/amazingTest/Taisite-Platform.git
泰斯特Test's avatar
泰斯特Test 已提交
169 170 171

***

泰斯特Test's avatar
泰斯特Test 已提交
172
#### 1. 自然语言模型部署
泰斯特Test's avatar
泰斯特Test 已提交
173 174 175 176

	sudo -i
	docker pull shaoyuyishiwo/bertserver
	docker run --name autotest-platform-bertserver -d shaoyuyishiwo/bertserver 
泰斯特Test's avatar
泰斯特Test 已提交
177 178
	
***
泰斯特Test's avatar
泰斯特Test 已提交
179

泰斯特Test's avatar
泰斯特Test 已提交
180
#### 2. Mongo 数据库部署 (若已有现成数据库可用则可跳过此步)
泰斯特Test's avatar
泰斯特Test 已提交
181

泰斯特Test's avatar
泰斯特Test 已提交
182
##### 2.1 启动数据库 & 数据挂载至宿主机
泰斯特Test's avatar
泰斯特Test 已提交
183 184 185 186 187
    
    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 已提交
188
##### 2.2 创建数据库帐号
泰斯特Test's avatar
泰斯特Test 已提交
189 190

	docker exec -it autotest-platform-mongo /bin/bash
泰斯特Test's avatar
泰斯特Test 已提交
191 192 193
	
    mongo
    
泰斯特Test's avatar
泰斯特Test 已提交
194 195 196 197 198 199 200 201
	> 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 已提交
202
##### 2.3 数据库内存扩容(建议)
泰斯特Test's avatar
泰斯特Test 已提交
203 204 205 206 207
  
    > db.adminCommand({setParameter:1, internalQueryExecMaxBlockingSortBytes:335544320})
    
    { "was" : 33554432, "ok" : 1 }
 
泰斯特Test's avatar
泰斯特Test 已提交
208
***
泰斯特Test's avatar
泰斯特Test 已提交
209

泰斯特Test's avatar
泰斯特Test 已提交
210
#### 3. 环境变量配置
泰斯特Test's avatar
泰斯特Test 已提交
211
  
泰斯特Test's avatar
泰斯特Test 已提交
212
    // 编辑 /etc/profile 文件
泰斯特Test's avatar
泰斯特Test 已提交
213 214 215 216 217
    sudo -i
    vi /etc/profile
  
  若出现警告则选择 (E)dit anyway (输入 E)
  
泰斯特Test's avatar
泰斯特Test 已提交
218
  ##### 3.1 文本末端插入下列数据 (输入 i 则变为 insert 状态)
泰斯特Test's avatar
泰斯特Test 已提交
219 220 221
  
    export AUTOTEST_PLATFORM_NLP_HOST=${BERT_IPADRESS}
    export AUTOTEST_PLATFORM_MONGO_HOST=${MONGO_HOST}
泰斯特Test's avatar
泰斯特Test 已提交
222
    export AUTOTEST_PLATFORM_MONGO_PORT=${MONGO_PORT}
泰斯特Test's avatar
泰斯特Test 已提交
223 224
    export AUTOTEST_PLATFORM_MONGO_USERNAME=${USERNAME}
    export AUTOTEST_PLATFORM_MONGO_PASSWORD=${PASSWORD}
泰斯特Test's avatar
泰斯特Test 已提交
225
    export AUTOTEST_PLATFORM_MONGO_DEFAULT_DBNAME=${DBNAME}
泰斯特Test's avatar
泰斯特Test 已提交
226
	
泰斯特Test's avatar
泰斯特Test 已提交
227 228
  变量为动态值,部署者自行根据实际情况输入,${DBNAME} 值可任意自定义(数据库表名),
  其中 ${BERT_IPADRESS} 和 ${MONGO_HOST} 值可通过下列命令查询:
泰斯特Test's avatar
泰斯特Test 已提交
229 230
  
    docker inspect autotest-platform-bertserver
泰斯特Test's avatar
泰斯特Test 已提交
231
    docker inspect autotest-platform-mongo // 若使用了上面的步骤部署数据库
泰斯特Test's avatar
泰斯特Test 已提交
232
  
泰斯特Test's avatar
泰斯特Test 已提交
233
  输出如下图所示:
泰斯特Test's avatar
泰斯特Test 已提交
234
  
泰斯特Test's avatar
泰斯特Test 已提交
235
  ![控制台输出1](https://github.com/amazingTest/Taisite-Platform/blob/master/images/控制台输出1.png)
泰斯特Test's avatar
泰斯特Test 已提交
236
  
泰斯特Test's avatar
泰斯特Test 已提交
237
  ##### 3.2 插入完毕后点击 ESC 按钮、输入 :wq 后单击回车保存
泰斯特Test's avatar
泰斯特Test 已提交
238
  
泰斯特Test's avatar
泰斯特Test 已提交
239
  ##### 3.3 执行下列命令后环境变量立即生效
泰斯特Test's avatar
泰斯特Test 已提交
240
 
泰斯特Test's avatar
泰斯特Test 已提交
241
    source /etc/profile
泰斯特Test's avatar
泰斯特Test 已提交
242 243
    
***
泰斯特Test's avatar
泰斯特Test 已提交
244

泰斯特Test's avatar
泰斯特Test 已提交
245 246
#### 4. 启动项目
    
泰斯特Test's avatar
泰斯特Test 已提交
247
    //在项目根目录下执行部署文件
泰斯特Test's avatar
泰斯特Test 已提交
248
    sh deploy ${PORT} 
泰斯特Test's avatar
泰斯特Test 已提交
249
    
泰斯特Test's avatar
泰斯特Test 已提交
250
  其中 ${PORT} 变量填写项目访问端口即可,项目启动的同时也创建了管理员帐号和随机密码,如下图所示:
泰斯特Test's avatar
泰斯特Test 已提交
251
  
泰斯特Test's avatar
泰斯特Test 已提交
252
  ![控制台输出2](https://github.com/amazingTest/Taisite-Platform/blob/master/images/控制台输出2.png)
泰斯特Test's avatar
泰斯特Test 已提交
253
  
泰斯特Test's avatar
泰斯特Test 已提交
254 255
***  
  
泰斯特Test's avatar
泰斯特Test 已提交
256 257 258 259 260 261
#### 5. 访问项目

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

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

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

泰斯特Test's avatar
泰斯特Test 已提交
263
## V . 泰斯特平台使用教程
泰斯特Test's avatar
泰斯特Test 已提交
264

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

泰斯特Test's avatar
泰斯特Test 已提交
266 267 268
平台主流程使用可参考 [这篇博文中的正文部分](https://juejin.im/post/5cd0117be51d456e537ef3bd) 

详细的使用教程后续补上 :)
泰斯特Test's avatar
泰斯特Test 已提交
269

泰斯特Test's avatar
泰斯特Test 已提交
270
## VI . 联系泰斯特
泰斯特Test's avatar
泰斯特Test 已提交
271

泰斯特Test's avatar
泰斯特Test 已提交
272
若有任何疑问、建议,或想关注更多关于平台的咨询, 欢迎扫描下方二维码关注我、联系我。
泰斯特Test's avatar
泰斯特Test 已提交
273

泰斯特Test's avatar
泰斯特Test 已提交
274
![2D-Code](https://github.com/amazingTest/Taisite-Platform/blob/master/images/微信公众号.jpg)
泰斯特Test's avatar
泰斯特Test 已提交
275

泰斯特Test's avatar
泰斯特Test 已提交
276
**开源不易** 热烈欢迎扫描下方二维码 **助力开源**
泰斯特Test's avatar
泰斯特Test 已提交
277 278

![2D-Code](https://github.com/amazingTest/Taisite-Platform/blob/master/images/wechatDonation.jpg)    
泰斯特Test's avatar
泰斯特Test 已提交
279