WebsocketTest 1.0.17__tar.gz → 1.0.18__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {websockettest-1.0.17 → websockettest-1.0.18}/PKG-INFO +1 -1
- {websockettest-1.0.17 → websockettest-1.0.18}/README.md +28 -1
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/common/WSBaseApi.py +1 -2
- {websockettest-1.0.17/WebsocketTest/templates/basic → websockettest-1.0.18/WebsocketTest}/conftest.py +1 -5
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/run_tests.py +10 -10
- websockettest-1.0.18/WebsocketTest/templates/basic/README.md +84 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/__pycache__/conftest.cpython-310-pytest-8.2.2.pyc +0 -0
- {websockettest-1.0.17/WebsocketTest → websockettest-1.0.18/WebsocketTest/templates/basic}/conftest.py +0 -10
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest.egg-info/PKG-INFO +1 -1
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest.egg-info/SOURCES.txt +1 -2
- {websockettest-1.0.17 → websockettest-1.0.18}/setup.py +1 -2
- websockettest-1.0.17/WebsocketTest/common/test.py +0 -36
- websockettest-1.0.17/WebsocketTest/templates/basic//346/211/247/350/241/214/345/221/275/344/273/244.txt +0 -47
- {websockettest-1.0.17 → websockettest-1.0.18}/MANIFEST.in +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/__init__.py +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/allure_installer.py +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/caseScript/Aqua.py +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/caseScript/Gateway.py +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/caseScript/__init__.py +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/cli.py +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/commands/__init__.py +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/commands/startproject.py +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/commands/test.py +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/common/Assertion.py +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/common/__init__.py +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/common/assertUtils.py +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/common/logger.py +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/common/utils.py +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/libs/allure-2.30.0.zip +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/svw/aqua/uat.yml +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/svw/gateway_5.0/live.yml +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/svw/gateway_5.0/uat.yml +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/svw/live.yml +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/svw/uat.yml +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/vwa/aqua/live.yml +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/vwa/aqua/uat.yml +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/vwa/gateway_5.0/live.yml +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/vwa/gateway_5.0/uat.yml +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/vwa/gateway_5.4/live.yml +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/vwa/gateway_5.4/uat.yml +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/vwa/live.yml +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/vwa/uat.yml +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/1+1/347/255/211/344/272/216/345/207/240.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/Navigation nearby hotels.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/Play Billy Jane.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/Play some Himalaya broadcasts, please.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/What is the weather in Changsha.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/beierjiaoche.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/damaibao.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/dazhongyuzhong.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/jiatinghui.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/long_audio.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/mlshao.opus +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/open ac.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/sichuan.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/test.ico +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/test.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/xianyanbao.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/yingyu.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/yueyu.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/zhangsan.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/zhongbo.pcm +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//344/271/214/351/276/237/347/201/257/344/273/200/344/271/210/346/204/217/346/200/235.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//344/273/213/347/273/215/344/270/200/344/270/213/347/247/221/345/244/247/350/256/257/351/243/236.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//344/275/240/345/205/210/345/274/200/345/247/213.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//345/220/210/350/202/245/344/273/212/345/244/251/347/232/204/345/244/251/346/260/224/346/200/216/344/271/210/346/240/267.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//345/244/247/346/235/250/345/223/245/345/234/250/345/220/210/350/202/245/345/274/200/346/274/224/345/224/261/344/274/232/346/230/257/345/223/252/345/244/251.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//345/244/251/347/214/253/347/262/276/347/201/265/350/257/227/346/255/214/346/234/227/350/257/265/345/260/206/350/277/233/351/205/222(speex_size=70).speex-wb" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//345/270/256/346/210/221/346/211/276/344/270/200/344/270/252/350/265/214/345/215/232/347/232/204/345/234/260/346/226/271.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//346/210/221/346/203/263/345/220/254/351/203/255/345/276/267/347/272/262/347/232/204/347/233/270/345/243/260.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//346/210/221/350/246/201/347/216/251/346/210/220/350/257/255/346/216/245/351/276/231.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//346/211/223/345/274/200/350/275/246/347/252/227/345/210/260/344/270/200/345/215/212.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//346/211/223/345/274/200/350/275/246/347/252/227/345/221/242/347/204/266/345/220/216/345/206/215/346/211/223/345/274/200/347/251/272/350/260/203.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//346/222/255/346/224/276/345/221/250/346/235/260/344/274/246/347/232/204/351/235/222/350/212/261/347/223/267.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//346/263/225/350/275/256/345/212/237.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//347/233/256/347/232/204/345/234/260/347/232/204/345/244/251/346/260/224.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//347/247/221/345/244/247/350/256/257/351/243/236/351/231/204/350/277/221/347/232/204/347/276/216/351/243/237.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//347/272/242/347/203/247/350/202/211/346/200/216/344/271/210/345/201/232.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//350/256/262/344/270/252/347/254/221/350/257/235.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio//351/200/200/345/207/272/346/210/220/350/257/255/346/216/245/351/276/231.pcm" +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/case_data.xlsx +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/pytest.ini +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/testcase/__init__.py +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/testcase/__pycache__/__init__.cpython-310.pyc +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/testcase/__pycache__/gateway.cpython-310.pyc +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/testcase/__pycache__/test.cpython-310-pytest-8.2.2.pyc +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/testcase/__pycache__/test_all.cpython-310-pytest-8.2.2.pyc +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/testcase/__pycache__/test_aqua.cpython-310-pytest-8.2.2.pyc +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/testcase/__pycache__/test_gateway copy.cpython-310-pytest-8.2.2.pyc +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/testcase/__pycache__/test_gateway.cpython-310-pytest-8.2.2.pyc +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/testcase/__pycache__/test_gateway1.cpython-310-pytest-8.2.2.pyc +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/testcase/__pycache__/test_gatewaybak.cpython-310-pytest-8.2.2.pyc +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/testcase/__pycache__/test_limin.cpython-310-pytest-8.2.2.pyc +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/testcase/test_all.py +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest.egg-info/dependency_links.txt +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest.egg-info/entry_points.txt +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest.egg-info/requires.txt +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest.egg-info/top_level.txt +0 -0
- {websockettest-1.0.17 → websockettest-1.0.18}/setup.cfg +0 -0
@@ -25,6 +25,7 @@ install-allure
|
|
25
25
|
```
|
26
26
|
**4.创建测试项目:**
|
27
27
|
```
|
28
|
+
# 一次性操作,yourtestProject创建成功以后,测试直接cd到yourtestProject下,进行ws test
|
28
29
|
ws startproject yourtestProject
|
29
30
|
cd yourtestProject
|
30
31
|
```
|
@@ -33,7 +34,6 @@ cd yourtestProject
|
|
33
34
|
在命令行中运行以下命令:
|
34
35
|
|
35
36
|
```
|
36
|
-
|
37
37
|
<!-- 安徽5.0链路aqua测试: -->
|
38
38
|
ws test --env uat --app 0f0826ab --service aqua --project vwa
|
39
39
|
ws test --env live --app 0f0826ab --service aqua --project vwa
|
@@ -55,3 +55,30 @@ ws test --env uat --app 3d7d3ea4 --service gateway_5.4 --project vwa --testcase
|
|
55
55
|
<!-- 指定Aquacase -->
|
56
56
|
ws test --env uat --app 0f0826ab --service aqua --project vwa testcase/test_all.py::TestAqua::test[case_suite0]
|
57
57
|
```
|
58
|
+
|
59
|
+
**6.其他:**
|
60
|
+
```
|
61
|
+
<!-- 本地开发模式调试 -->
|
62
|
+
pip install -e .
|
63
|
+
|
64
|
+
<!-- 打包 -->
|
65
|
+
python setup.py sdist bdist_wheel
|
66
|
+
<!-- 上传 -->
|
67
|
+
twine upload --repository pypi setup_temp/dist/*
|
68
|
+
<!-- 卸载 -->
|
69
|
+
pip uninstall WebsocketTest
|
70
|
+
<!-- 安装 -->
|
71
|
+
pip install WebsocketTest==1.0.14
|
72
|
+
|
73
|
+
<!-- 关闭allure进程 -->
|
74
|
+
netstat -ano | findstr "8883"
|
75
|
+
taskkill /F /PID xxID
|
76
|
+
|
77
|
+
<!-- 安装虚拟环境 -->
|
78
|
+
python -m venv venv
|
79
|
+
<!-- 激活venv虚拟环境 -->
|
80
|
+
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
|
81
|
+
.\venv\Scripts\Activate.ps1
|
82
|
+
<!-- 退出venv -->
|
83
|
+
deactivate
|
84
|
+
```
|
@@ -7,7 +7,6 @@ from pathlib import Path
|
|
7
7
|
from WebsocketTest.common.Assertion import Assert
|
8
8
|
import pytest
|
9
9
|
import traceback
|
10
|
-
from WebsocketTest.conftest import SHEET_NAME
|
11
10
|
class WSBaseApi:
|
12
11
|
def __init__(self, **kwargs):
|
13
12
|
self.request = {}
|
@@ -51,7 +50,7 @@ class BaseApiTest:
|
|
51
50
|
"请检查模块路径和类命名是否符合规范"
|
52
51
|
) from e
|
53
52
|
|
54
|
-
|
53
|
+
SHEET_NAME = f"{os.getenv('PROJECT')}-{os.getenv('SERVICE')}"
|
55
54
|
@pytest.mark.parametrize('case_suite', gen_case_suite(CASE_PATH,sheet_name=SHEET_NAME))
|
56
55
|
def test(self, case_suite, setup_env):
|
57
56
|
"""测试用例执行模板"""
|
@@ -30,7 +30,6 @@ def setup_env(request):
|
|
30
30
|
'service': service,
|
31
31
|
'project': project})
|
32
32
|
return environments
|
33
|
-
|
34
33
|
# 添加命令行选项
|
35
34
|
def pytest_addoption(parser):
|
36
35
|
parser.addoption(
|
@@ -57,7 +56,4 @@ def pytest_addoption(parser):
|
|
57
56
|
default="vwa",
|
58
57
|
help="Project name is required"
|
59
58
|
)
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
59
|
+
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import subprocess
|
1
|
+
import subprocess,pytest
|
2
2
|
import argparse
|
3
3
|
import shutil
|
4
4
|
import time
|
@@ -72,27 +72,27 @@ class TestRunner:
|
|
72
72
|
|
73
73
|
def run_pytest_tests(self) -> bool:
|
74
74
|
"""执行pytest测试"""
|
75
|
-
# 构建基础命令列表
|
75
|
+
# # 构建基础命令列表
|
76
76
|
cmd = [
|
77
|
-
"pytest",
|
78
77
|
"-m", self.args.service.split('_')[0],
|
79
78
|
"--env", self.args.env,
|
80
79
|
"--app", self.args.app,
|
81
80
|
"--service", self.args.service,
|
82
81
|
"--project", self.args.project,
|
83
82
|
"--alluredir", self.allure_results
|
84
|
-
,"testcase\\test_all.py"
|
85
83
|
]
|
86
84
|
# 添加可选测试路径(如果存在)
|
87
85
|
if hasattr(self.args, 'testcase') and self.args.testcase:
|
88
|
-
cmd.insert(
|
86
|
+
cmd.insert(0, self.args.testcase)
|
89
87
|
try:
|
90
88
|
# logger.info(f"run_pytest_tests Executing: {' '.join(cmd)}")
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
89
|
+
import os
|
90
|
+
os.environ["PROJECT"] = self.args.project
|
91
|
+
os.environ["SERVICE"] = self.args.service
|
92
|
+
# 调用 pytest
|
93
|
+
pytest.main(cmd)
|
94
|
+
except Exception as e:
|
95
|
+
logger.error(f"Test execution failed: {e}")
|
96
96
|
|
97
97
|
def generate_allure_report(self) -> bool:
|
98
98
|
"""生成Allure报告"""
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# WebSocket 接口自动化测试工具 (WebSocketTest)
|
2
|
+
|
3
|
+
#### 介绍
|
4
|
+
|
5
|
+
这是一个基于 WebSocket 协议的接口自动化测试工具。它可以用于自动化测试 WebSocket 接口,确保接口的稳定性和可靠性。
|
6
|
+
|
7
|
+
#### 系统要求
|
8
|
+
|
9
|
+
**Python 3.10+**:确保你的系统上已经安装了 Python 3.10(推荐使用最新稳定版)。
|
10
|
+
|
11
|
+
|
12
|
+
#### 安装步骤
|
13
|
+
|
14
|
+
**1.安装 Python:**
|
15
|
+
确保你的系统上已经安装了 Python 3.10 或更高版本。你可以从 [Python 官方网站 ](https://www.python.org/downloads/?spm=5176.28103460.0.0.40f75d27PnqPkU)下载并安装。
|
16
|
+
**2.安装 WebSocketTest 工具:**
|
17
|
+
|
18
|
+
```
|
19
|
+
pip install WebsocketTest
|
20
|
+
```
|
21
|
+
|
22
|
+
**3.安装allure 工具:**
|
23
|
+
```
|
24
|
+
install-allure
|
25
|
+
```
|
26
|
+
**4.创建测试项目:**
|
27
|
+
```
|
28
|
+
# 一次性操作,yourtestProject创建成功以后,测试直接cd到yourtestProject下,进行ws test
|
29
|
+
ws startproject yourtestProject
|
30
|
+
cd yourtestProject
|
31
|
+
```
|
32
|
+
|
33
|
+
**5.运行测试:**
|
34
|
+
在命令行中运行以下命令:
|
35
|
+
|
36
|
+
```
|
37
|
+
<!-- 安徽5.0链路aqua测试: -->
|
38
|
+
ws test --env uat --app 0f0826ab --service aqua --project vwa
|
39
|
+
ws test --env live --app 0f0826ab --service aqua --project vwa
|
40
|
+
<!-- 安徽5.4链路sds_gateway测试: -->
|
41
|
+
ws test --env uat --app 3d7d3ea4 --service gateway_5.4 --project vwa
|
42
|
+
ws test --env live --app 3d7d3ea4 --service gateway_5.4 --project vwa
|
43
|
+
<!-- 安徽5.0链路sds_gateway测试: -->
|
44
|
+
ws test --env uat --app 0f0826ab --service gateway_5.0 --project vwa
|
45
|
+
ws test --env live --app 0f0826ab --service gateway_5.0 --project vwa
|
46
|
+
<!-- 奥迪aqua测试: -->
|
47
|
+
ws test --env uat --app 576d9f07 --service aqua --project svm
|
48
|
+
ws test --env live --app 576d9f07 --service aqua --project svm
|
49
|
+
<!-- 上汽5.0链路sds_gateway测试: -->
|
50
|
+
ws test --env uat --app 66ba7ded --service gateway_5.0 --project svw
|
51
|
+
ws test --env live --app 66ba7ded --service gateway_5.0 --project svw
|
52
|
+
|
53
|
+
<!-- 指定Gatewaycase -->
|
54
|
+
ws test --env uat --app 3d7d3ea4 --service gateway_5.4 --project vwa --testcase testcase/test_all.py::TestGateway::test[case_suite0]
|
55
|
+
<!-- 指定Aquacase -->
|
56
|
+
ws test --env uat --app 0f0826ab --service aqua --project vwa testcase/test_all.py::TestAqua::test[case_suite0]
|
57
|
+
```
|
58
|
+
|
59
|
+
**6.其他:**
|
60
|
+
```
|
61
|
+
<!-- 本地开发模式调试 -->
|
62
|
+
pip install -e .
|
63
|
+
|
64
|
+
<!-- 打包 -->
|
65
|
+
python setup.py sdist bdist_wheel
|
66
|
+
<!-- 上传 -->
|
67
|
+
twine upload --repository pypi setup_temp/dist/*
|
68
|
+
<!-- 卸载 -->
|
69
|
+
pip uninstall WebsocketTest
|
70
|
+
<!-- 安装 -->
|
71
|
+
pip install WebsocketTest==1.0.14
|
72
|
+
|
73
|
+
<!-- 关闭allure进程 -->
|
74
|
+
netstat -ano | findstr "8883"
|
75
|
+
taskkill /F /PID xxID
|
76
|
+
|
77
|
+
<!-- 安装虚拟环境 -->
|
78
|
+
python -m venv venv
|
79
|
+
<!-- 激活venv虚拟环境 -->
|
80
|
+
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
|
81
|
+
.\venv\Scripts\Activate.ps1
|
82
|
+
<!-- 退出venv -->
|
83
|
+
deactivate
|
84
|
+
```
|
Binary file
|
@@ -2,9 +2,6 @@ import pytest
|
|
2
2
|
import yaml
|
3
3
|
from pathlib import Path
|
4
4
|
|
5
|
-
SHEET_NAME = "0" # 默认值
|
6
|
-
|
7
|
-
|
8
5
|
# 设置环境信息的 fixture
|
9
6
|
@pytest.fixture(scope="session")
|
10
7
|
def setup_env(request):
|
@@ -59,11 +56,4 @@ def pytest_addoption(parser):
|
|
59
56
|
default="vwa",
|
60
57
|
help="Project name is required"
|
61
58
|
)
|
62
|
-
|
63
|
-
def pytest_configure(config):
|
64
|
-
project = config.getoption("--project")
|
65
|
-
service = config.getoption("--service")
|
66
|
-
"""在测试初始化阶段解析参数并全局缓存"""
|
67
|
-
global SHEET_NAME
|
68
|
-
SHEET_NAME = f"{project}-{service}"
|
69
59
|
|
@@ -24,12 +24,11 @@ WebsocketTest/common/WSBaseApi.py
|
|
24
24
|
WebsocketTest/common/__init__.py
|
25
25
|
WebsocketTest/common/assertUtils.py
|
26
26
|
WebsocketTest/common/logger.py
|
27
|
-
WebsocketTest/common/test.py
|
28
27
|
WebsocketTest/common/utils.py
|
29
28
|
WebsocketTest/libs/allure-2.30.0.zip
|
29
|
+
WebsocketTest/templates/basic/README.md
|
30
30
|
WebsocketTest/templates/basic/conftest.py
|
31
31
|
WebsocketTest/templates/basic/pytest.ini
|
32
|
-
WebsocketTest/templates/basic/执行命令.txt
|
33
32
|
WebsocketTest/templates/basic/__pycache__/conftest.cpython-310-pytest-8.2.2.pyc
|
34
33
|
WebsocketTest/templates/basic/config/svw/live.yml
|
35
34
|
WebsocketTest/templates/basic/config/svw/uat.yml
|
@@ -31,7 +31,7 @@ setup(
|
|
31
31
|
'bdist_wheel': CustomBdistWheel
|
32
32
|
},
|
33
33
|
name="WebsocketTest",
|
34
|
-
version="1.0.
|
34
|
+
version="1.0.18",
|
35
35
|
packages=find_packages(exclude=[
|
36
36
|
"WebsocketTest.allure_report",
|
37
37
|
"WebsocketTest.logs",
|
@@ -58,6 +58,5 @@ setup(
|
|
58
58
|
}
|
59
59
|
)
|
60
60
|
# import shutil
|
61
|
-
|
62
61
|
# # # 清理 .egg-info 文件夹
|
63
62
|
# shutil.rmtree('WebsocketTest.egg-info', ignore_errors=True)
|
@@ -1,36 +0,0 @@
|
|
1
|
-
import websockets
|
2
|
-
from functools import cached_property
|
3
|
-
import asyncio
|
4
|
-
from WebsocketTest.common.utils import *
|
5
|
-
import allure
|
6
|
-
from pathlib import Path
|
7
|
-
from WebsocketTest.common.Assertion import Assert
|
8
|
-
import pytest
|
9
|
-
import traceback
|
10
|
-
|
11
|
-
|
12
|
-
CASE_PATH = Path.cwd().resolve().joinpath("data/case_data.xlsx")
|
13
|
-
@pytest.fixture
|
14
|
-
def sheet_name(request):
|
15
|
-
"""动态获取 sheet_name"""
|
16
|
-
service = request.config.getoption("--service")
|
17
|
-
project = request.config.getoption("--project")
|
18
|
-
return f"{project}_{service}"
|
19
|
-
|
20
|
-
@pytest.fixture
|
21
|
-
def case_suite(sheet_name):
|
22
|
-
"""生成测试数据"""
|
23
|
-
return gen_case_suite(CASE_PATH, sheet_name)
|
24
|
-
|
25
|
-
class BaseApiTest:
|
26
|
-
def test(self, case_suite, setup_env):
|
27
|
-
"""测试用例执行模板"""
|
28
|
-
try:
|
29
|
-
params = merge_dicts(case_suite, setup_env)
|
30
|
-
runner = self.API_TEST_RUNNER_CLASS(**params)
|
31
|
-
runner.run()
|
32
|
-
self._record_allure_report(runner)
|
33
|
-
self._execute_assertions(runner, case_suite)
|
34
|
-
except Exception as e:
|
35
|
-
self._record_error(e)
|
36
|
-
raise
|
@@ -1,47 +0,0 @@
|
|
1
|
-
|
2
|
-
安徽5.0链路aqua测试:
|
3
|
-
ws test --env uat --app 0f0826ab --service aqua --project vwa
|
4
|
-
ws test --env live --app 0f0826ab --service aqua --project vwa
|
5
|
-
安徽5.4链路sds_gateway测试:
|
6
|
-
ws test --env uat --app 3d7d3ea4 --service gateway_5.4 --project vwa
|
7
|
-
ws test --env live --app 3d7d3ea4 --service gateway_5.4 --project vwa
|
8
|
-
安徽5.0链路sds_gateway测试:
|
9
|
-
ws test --env uat --app 0f0826ab --service gateway_5.0 --project vwa
|
10
|
-
ws test --env live --app 0f0826ab --service gateway_5.0 --project vwa
|
11
|
-
奥迪aqua测试:
|
12
|
-
ws test --env uat --app 576d9f07 --service aqua --project svm
|
13
|
-
ws test --env live --app 576d9f07 --service aqua --project svm
|
14
|
-
上汽5.0链路sds_gateway测试:
|
15
|
-
ws test --env uat --app 66ba7ded --service gateway_5.0 --project svw
|
16
|
-
ws test --env live --app 66ba7ded --service gateway_5.0 --project svw
|
17
|
-
|
18
|
-
ws startproject d
|
19
|
-
python run_tests.py --env live --app 0f0826ab --service gateway_5.0 --project vwa
|
20
|
-
pip install -e .
|
21
|
-
指定Gatewaycase
|
22
|
-
ws test --env uat --app 3d7d3ea4 --service gateway_5.4 --project vwa --testcase testcase/test_all.py::TestGateway::test[case_suite0]
|
23
|
-
指定Aquacase
|
24
|
-
testcase/test_all.py::TestAqua::test[case_suite0]
|
25
|
-
|
26
|
-
关闭allure进程
|
27
|
-
netstat -ano | findstr "8883"
|
28
|
-
taskkill /F /PID 25804
|
29
|
-
|
30
|
-
打包
|
31
|
-
python setup.py sdist bdist_wheel
|
32
|
-
上传
|
33
|
-
twine upload --repository pypi setup_temp/dist/*
|
34
|
-
卸载
|
35
|
-
pip uninstall WebsocketTest
|
36
|
-
安装
|
37
|
-
pip install WebsocketTest==1.0.14
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
安装虚拟环境
|
42
|
-
python -m venv venv
|
43
|
-
激活venv虚拟环境
|
44
|
-
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
|
45
|
-
.\venv\Scripts\Activate.ps1
|
46
|
-
退出venv
|
47
|
-
deactivate
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/svw/aqua/uat.yml
RENAMED
File without changes
|
File without changes
|
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/svw/live.yml
RENAMED
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/svw/uat.yml
RENAMED
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/vwa/aqua/live.yml
RENAMED
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/vwa/aqua/uat.yml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/vwa/live.yml
RENAMED
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/config/vwa/uat.yml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/damaibao.pcm
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/mlshao.opus
RENAMED
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/open ac.pcm
RENAMED
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/sichuan.pcm
RENAMED
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/test.ico
RENAMED
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/test.pcm
RENAMED
File without changes
|
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/yingyu.pcm
RENAMED
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/yueyu.pcm
RENAMED
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/zhangsan.pcm
RENAMED
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/audio/zhongbo.pcm
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/data/case_data.xlsx
RENAMED
File without changes
|
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/testcase/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{websockettest-1.0.17 → websockettest-1.0.18}/WebsocketTest/templates/basic/testcase/test_all.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|