ClaireSpace / Taisite-Platform

Taisite-Platform is a free and open source interface automation test platform. The platform is dedicated to effectively combining artificial intelligence technology with interface automation test, so that the interface test platform is more intelligent and generalized while ensuring QA test accuracy requirements. Capabilities, while optimizing the interface automation test platform experience as much as possible, the goal is to become the most intimate, best-used, highest value open source interface automation test platform.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Taisite-Platform

泰斯特平台LOGO.png

Ⅰ. Introduction

Background

"Taisite-Platform" is an interface automation test platform developed by "Software Testing & Machine Learning Enthusiasts".

Vision

The platform is dedicated to effectively combining artificial intelligence technology with software testing, enabling the platform to be more intelligent and generalized while ensuring test accuracy requirements and optimize the user experience at the same time. The goal is to become the most intimate, best-used, highest value open source test platform.

Technology stack

The platform follows the idea of "separate development frontend and backend". The technology stack is: "Python + Vue + Mongodb".

(Thanks for the inspiration that this open source project brought to me.)

User environment

Chrome is a good choice

Open source protocol

APGL-3.0

Ⅱ. Taisite-platform features (os: What is the difference between other test platforms?)

0. It has been put into production environment for more than 1 year, it is stable~

  1. The platform follows a "small but fine" strategy to maximize the development of all features and cost-effectiveness, helping test teams quickly build easy-to-follow/maintain interfaces   automated test system.

  2. The platform follows the "zero-encoding" principle, and users can complete more complex business process interface tests without programming.

  3. The platform follows the principle of “good-looking is justice” and the operation interface is shown as follows:

操作界面展示

  1. The platform has an excellent timed task experience. After starting the scheduled task, you can disable/arbitrarily edit the task content and take effect immediately. It also has a rich alarm strategy.   The page is shown below:

定时任务配置

  1. The platform has import/export capabilities that support testers "favorite" Excel format for easy batch generation/modification of use cases.

数据导入展示

  1. The platform has a rich test result verification system and supports text similarity verification. (get more detail)

  2. The platform provides a test task scheduling interface to facilitate integration with development projects.

  3. ......

(There are so many amazing little features waiting for you to explore & tap)

Ⅲ .Taisite-platform function diagram ( em.. you need to translate by yourself :))

V1.0

泰斯特平台结构图_V1.0

IV . Deploy

Deploy under windows

0. Clone

git clone https://github.com/amazingTest/Taisite-Platform.git

1. Install python 3 env

2. deploy NLP model

Download model

2.2 Extract the compression package

2.3 Install python dependent-packages

pip install tensorflow==1.14.0  -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install bert-serving-server==1.9.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

2.4 Start the model

// Execute after the current directory is switched to the model folder directory

bert-serving-start -model_dir ./chinese_L-12_H-768_A-12/ -num_worker=1

After the startup is successful, the output is as follows:

NLP模型启动成功输出

3. Deploy Mongodb database

4. Set system environment variables

AUTOTEST_PLATFORM_ENV=production
AUTOTEST_PLATFORM_NLP_SERVER_HOST=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=taisite

Where AUTOTEST_PLATFORM_ENV defaults to production (required)

AUTOTEST_PLATFORM_MONGO_HOST and AUTOTEST_PLATFORM_MONGO_PORT indicate the address and port of the database (required)

AUTOTEST_PLATFORM_MONGO_USERNAME and AUTOTEST_PLATFORM_MONGO_PASSWORD represent the account password of the database (if not required)

AUTOTEST_PLATFORM_NLP_SERVER_HOST (Natural Language Model Service) defaults to native boot (not required)

AUTOTEST_PLATFORM_MONGO_DEFAULT_DBNAME is the default data table name (required)

After the setting is completed, you can test it with the following commands (CMD switches to the project root directory)

python ./backend/config.py

If the configuration is successful, you can see the input configuration data.

5. Package the front-end dist file (I have done this for you, skip it if you don't need secondary development)

5.1 Install the Vue environment, download node.js and configure the environment, download the npm package manager

5.2 Cmd into the frontend directory, configure cnpm:

npm install -g cnpm --registry=https://registry.npm.taobao.org   

5.3 Execute the install dependency package command:

cnpm install

5.4 Execute the package command:

cnpm run build

If successfully packaged, the dist folder will be generated in the project root directory.

6. Start backend

// Switch to the project root directory to execute

pip install -r ./backend/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

// Start backend (default 5050 port)

python ./backend/run.py

// Create a platform administrator account password

python ./backend/createAdminUser.py

7. Access project

You can now log in using http://127.0.0.1:5050/#/login using the created administrator account password.

平台登录界面2.png

Docker containerized deployment in Linux environment

0. Clone

git clone https://github.com/amazingTest/Taisite-Platform.git

1. Natural language model deployment

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

2. Mongo database deployment (skip this step if an existing database is available)

2.1 Start database & data mount to host

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

2.2 Create a database account

docker exec -it autotest-platform-mongo /bin/bash

mongo

> use admin

switched to db admin

> db.createUser({user:"${USERNAME}",pwd:"${PASSWORD}",roles:["root"]})

Successfully added user: { "user" : "admin", "roles" : [ "root" ] }

2.3 Database memory expansion (recommended)

> db.adminCommand({setParameter:1, internalQueryExecMaxBlockingSortBytes:335544320})

{ "was" : 33554432, "ok" : 1 }

3. Environment variable configuration

// Edit /etc/profile file

sudo -i
vi /etc/profile

If there is a warning, select (E)dit anyway (enter E)

3.1 Insert the following data at the end of the text (enter i to get into insert status)

export AUTOTEST_PLATFORM_ENV=production
export AUTOTEST_PLATFORM_NLP_SERVER_HOST=${BERT_IPADRESS}
export AUTOTEST_PLATFORM_MONGO_HOST=${MONGO_HOST}
export AUTOTEST_PLATFORM_MONGO_PORT=${MONGO_PORT}
export AUTOTEST_PLATFORM_MONGO_USERNAME=${USERNAME}
export AUTOTEST_PLATFORM_MONGO_PASSWORD=${PASSWORD}
export AUTOTEST_PLATFORM_MONGO_DEFAULT_DBNAME=${DBNAME}

The variable is a dynamic value. The deployer can input it according to the actual situation. The DBNAME value can be arbitrarily customized (database table name). The BERT_IPADRESS and MONGO_HOST values can be queried by the following commands:

docker inspect autotest-platform-bertserver
docker inspect autotest-platform-mongo // If you used the above steps to deploy the database

The output is shown below:

控制台输出1.png

3.2 After inserting, click the ESC button, type :wq and click Enter to save.

3.3 Environment variables take effect immediately after executing the following command

source /etc/profile

4. Start the project

Before you start the project, you need to change the timezone info by modifying the RUN script in Dockerfile.backend which stay in first-level directory of the project. The default timezone is Asia/Shanghai.

// Execute the deployment file in the project root directory

sh deploy ${PORT} 

The ${PORT} variable fills in the project access port, and the administrator account password is also created when the project starts, as shown in the following figure:

控制台输出2.png

5. Access project

The browser can access the ${PORT} port of the deployment server address.

平台登录界面.png

EXTRA. FQA

The following output represents the NLP model startup failure

NLP部署失败.png

Solution steps:

  1. Remove the code from ./backend/app/init.py:

不使用NLP模型方法指南1.png

  1. Modify the following code in ./backend/testframe/interfaceTest/tester.py to pass:

不使用NLP模型方法指南2.png

When you start the project after you finish, you will not depend on the natural language model~

V . Contact me

if you have any questions , feel free to email me , 523314409@qq.com.

About

Taisite-Platform is a free and open source interface automation test platform. The platform is dedicated to effectively combining artificial intelligence technology with interface automation test, so that the interface test platform is more intelligent and generalized while ensuring QA test accuracy requirements. Capabilities, while optimizing the interface automation test platform experience as much as possible, the goal is to become the most intimate, best-used, highest value open source interface automation test platform.

License:GNU Affero General Public License v3.0


Languages

Language:Vue 52.9%Language:Python 27.5%Language:HTML 7.4%Language:JavaScript 7.4%Language:CSS 4.9%