修复 jsonpath 校验结果为 false 时校验异常的问题
This commit is contained in:
parent
deb9db92cc
commit
9cafc8ea05
|
@ -9,8 +9,9 @@
|
||||||
- 使用技术:Python+Selenium4+Requests+Allure2+Pytest+Jenkins+Pymysql+selenium4 Grid
|
- 使用技术:Python+Selenium4+Requests+Allure2+Pytest+Jenkins+Pymysql+selenium4 Grid
|
||||||
- 我已经成功地在公司中落地了此框架,集成了大约 2w+的自动化 case,如果这个项目对你有帮助或启发,请多多点赞!
|
- 我已经成功地在公司中落地了此框架,集成了大约 2w+的自动化 case,如果这个项目对你有帮助或启发,请多多点赞!
|
||||||
- 建议Python 版本 >= 3.9
|
- 建议Python 版本 >= 3.9
|
||||||
- **希望各位大佬多多 star**
|
- **希望各位大佬多多 star**
|
||||||
- 
|
- 
|
||||||
|
|
||||||
### 项目目录简介
|
### 项目目录简介
|
||||||
|
|
||||||
1. [config](config) --> 存放配置文件
|
1. [config](config) --> 存放配置文件
|
||||||
|
@ -52,6 +53,7 @@
|
||||||
10. [docker-compose.yml](docker-compose.yml) --> docker-compose
|
10. [docker-compose.yml](docker-compose.yml) --> docker-compose
|
||||||
|
|
||||||
### 框架特色功能介绍
|
### 框架特色功能介绍
|
||||||
|
|
||||||
1. 支持 api用例 和 UI用例 的集成
|
1. 支持 api用例 和 UI用例 的集成
|
||||||
2. ui 用例执行步骤染色功能,明确展示出来被操作元素
|
2. ui 用例执行步骤染色功能,明确展示出来被操作元素
|
||||||
1. 
|
1. 
|
||||||
|
@ -64,6 +66,7 @@
|
||||||
6. 可以支持 jenkins 持续集成,看后面的参考文档或者提issue
|
6. 可以支持 jenkins 持续集成,看后面的参考文档或者提issue
|
||||||
7. 持续集成主入口[main.py](main.py),可以在 jenkins 上配置并发,环境,执行指定 mark,不用修改代码
|
7. 持续集成主入口[main.py](main.py),可以在 jenkins 上配置并发,环境,执行指定 mark,不用修改代码
|
||||||
8. [config.yaml](config%2Fconfig.yaml)通过 global 配置,在本地运行时切换环境
|
8. [config.yaml](config%2Fconfig.yaml)通过 global 配置,在本地运行时切换环境
|
||||||
|
|
||||||
### 安装方式(本地运行)
|
### 安装方式(本地运行)
|
||||||
|
|
||||||
1. 拉取项目安装requirements.txt中的包
|
1. 拉取项目安装requirements.txt中的包
|
||||||
|
@ -109,14 +112,14 @@ python3 jenkins_report.py || true
|
||||||

|

|
||||||
3. 代码中配置selenium grid地址
|
3. 代码中配置selenium grid地址
|
||||||
4. 在 [conftest.py](test_case%2Fconftest.py) 修改配置
|
4. 在 [conftest.py](test_case%2Fconftest.py) 修改配置
|
||||||
|
|
||||||
```
|
```
|
||||||
# 将 ip 修改为你自己的服务器 ip 后面的端口号和地址不用改动
|
# 将 ip 修改为你自己的服务器 ip 后面的端口号和地址不用改动
|
||||||
driver = webdriver.Remote(command_executor='http://127.0.0.1:5444/wd/hub', options=option)
|
driver = webdriver.Remote(command_executor='http://127.0.0.1:5444/wd/hub', options=option)
|
||||||
```
|
```
|
||||||
|
|
||||||
3. 自此当你在 jenkins 上运行测试时,用例会自动分发到你创建的 selenium grid 上。
|
3. 自此当你在 jenkins 上运行测试时,用例会自动分发到你创建的 selenium grid 上。
|
||||||
|
|
||||||
#### 备注
|
#### 备注
|
||||||
|
|
||||||
1. 不用自己安装chromedriver 会自动读取浏览器版本进行安装(会有点慢,如果不行可以写死 dirver 地址或者或尝试几次)
|
1. 不用自己安装chromedriver 会自动读取浏览器版本进行安装(会有点慢,如果不行可以写死 dirver 地址或者或尝试几次)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -14,10 +14,9 @@ from util.customize_exception import AnalysisError
|
||||||
|
|
||||||
def analysis_json(json, json_path_rule: str):
|
def analysis_json(json, json_path_rule: str):
|
||||||
try:
|
try:
|
||||||
value = jsonpath(json, json_path_rule)[0]
|
if jsonpath(json, json_path_rule):
|
||||||
Log.info(f"jsonpath解析的结果为:{value}")
|
Log.info(f"json解析结果为{jsonpath(json, json_path_rule)[0]}")
|
||||||
if value:
|
return jsonpath(json, json_path_rule)[0]
|
||||||
return value
|
|
||||||
else:
|
else:
|
||||||
raise AnalysisError(f"json解析异常!解析规则:{json_path_rule}")
|
raise AnalysisError(f"json解析异常!解析规则:{json_path_rule}")
|
||||||
except TypeError:
|
except TypeError:
|
||||||
|
|
Loading…
Reference in New Issue