自定义表查询小工具使用手册

2024-08-18  本文已影响0人  hao0_0

背景:

在测试过程中,我们需要频繁地检查多个表的数据准确性。由于不同的业务场景涉及不同的数据表,这个过程不仅容易导致数据误读或遗漏,还可能因为耗时而分散我们的注意力,降低测试效率。

问题:

数据查询繁琐: 业务的不同模块往往要求我们查询多个相关的数据表。仅依靠传统的数据查询工具进行这项工作既繁琐又不够直观,难以快速捕捉到关键信息。

易出错: 面对大量数据时,手动查找很容易发生误读或遗漏,增加了测试中的错误率。

效率低: 手动查询和比对数据消耗的时间和精力,降低了测试的整体效率。

解决方案:

为了应对上述挑战,做一款专用工具,为在帮助我们在各种场景下全局掌握订单状态,或者自定义需要查询的特定场景。这款工具简化了多表查询的过程,让数据呈现更加直观,从而显著提升了测试效率和专注度。

提高准确性: 工具通过自动化查询,减少了人为错误的可能性,确保数据的一致性和准确性。

提升效率: 通过一键式查询和直观的数据展示,大大缩短了查找和分析数据所需的时间,使测试人员能够更专注于业务逻辑验证。

增强可定制性: 用户可以根据具体需求自定义查询场景,使得工具更加贴合实际工作流程,提高了灵活性。

工具:

----------------------------------------------------------------

一、安装 PyQt5

PyQt5 是一个 Python 库,用于构建 GUI 应用程序。首先确保你的环境中已安装 Python,然后可以通过 pip 安装 PyQt5 和其他依赖项:

pip install pyqt5pip install pymysql

二、工具介绍

此工具是一个基于 PyQt5 构建的图形用户界面应用程序,旨在提高数据分析和查询效率。输入订单ID或自定义条件,并根据预设的查询逻辑从多个数据库表中获取数据。通过将数据集中展示在一个界面上,可以快速地分析数据,帮助工作提高效率。

特点 :

自定义表与字段 : 用户可以根据需要选择不同的业务场景表,并定义要展示的字段。

灵活的窗口配置 : 用户可以设置窗口大小和布局,以便更高效地查看数据。

多表查询 : 支持同时查询多个相关表,并在界面上展示结果。

环境选择 : 用户可以选择不同的环境来进行查询,如集群号选择测试环境。

三、使用说明

启动应用 :

- 终端或pycharm运行文件程序即可。

输入查询条件 :

- 自定义查询目标值,输出订单号/标的/用户UID/自定义。

选择环境 :

- 使用下拉菜单选择查询的环境,例如 “95-资金平台-测试环境A(k8s)-10.90.78.69”。

执行查询 :

- 点击“查询”按钮开始查询。

查询完成后,每个相关的数据库表的结果将在各自的表格中显示出来。

表格将按照预先设定的布局自动调整高度。

1. 查看结果 :

- - 每个表格都包含了相关的字段信息,例如订单状态、事件类型等。

可以通过滚动查看每张表的内容。

四、 tables 字典详解

tables 字典用于定义要展示的表及其字段。这是一个关键配置,决定了应用程序查询哪些表以及如何显示数据。

示例 :

tables={"fund_lend.t_event":{"columns":["FuiFundId","FuiEventId","FstrEventType","FstrEventStatus","RIGHT(FstrRemark, 15) as FstrRemark","FuiDealCount"],"query_keyword":"FstrLoanOrderId","full_row":True,"height":250},"fund_lend.t_loan_order":{"columns":["FuiStatus","FuiBorrowerId","FuiProductId","FuiLoanAmount","FuiRepayCardId"],"query_keyword":"FstrLoanOrderId","full_row":False,"height":80},"fund_lend.t_credit_order":{"columns":["FuiOrderStatus as OrderStatus","FuiQuotaStatus as QuotaStatus","FuiMatchRuleHandleId"],"query_keyword":"FstrLoanOrderId","full_row":False,"height":80},"fund_lend.t_credit_audit_order":{"columns":["FuiOrderStatus as OrderStatus","FuiQuotaStatus as QuotaStatus","FuiFundId","FuiLoanId"],"query_keyword":"FstrLoanOrderId","full_row":False,"height":120},"fund_lend.t_credit_audit_record":{"columns":["FuiFundId","FstrAPIType","FstrAPIResult"],"query_keyword":"FstrLoanOrderId","full_row":False,"height":120},"fund_lend.t_lending_order":{"columns":["FuiOrderStatus","FuiFundId","FstrLoanOrderId"],"query_keyword":"FstrLoanOrderId","full_row":False,"height":None},"fund_lend.t_credit_failure_reason":{"columns":["FuiFundId","FstrFundProjectId as ProjectId","FstrCommentInfo","FstrMatchOrderId"],"query_keyword":"FstrLoanOrderId","full_row":False,"height":None},}

属性解释 :

1、columns :

表示查询时返回的字段列表。字段名可以使用 SQL 的函数(如 RIGHT() )进行修改。

示例: "columns": ["FuiFundId", "FuiEventId", "FstrEventType"]

利用sql重命名显示字段:

示例: RIGHT(FstrRemark, 15) as FstrRemark,最终展示 “FstrRemark”

2、query_keyword :

表示用于连接查询的关键字,通常为订单ID字段,也可以自定义标的等。

示例: "query_keyword": "FstrLoanOrderId"

3、full_row :

- 指定是否应该为该表分配整个行的高度。

True : 表格占据整个行的高度。

False : 表格与其他表格共享行高度,但做多一行2个表展示。

示例: "full_row": True

4、height :

指定表格的固定高度。

如果 height 为 None ,则会根据剩余空间平均分配高度。

示例: "height": 250 (注意:总行高不能超过窗口总高)

五、tool_info、env_choose 及 tool_size 变量

1、tool_info:

一个列表,包含两个字符串元素:

第一个字符串 "订单查询工具":代表GUI工具的名称。

第二个字符串 "订单:":代表在GUI中输入订单号时的提示文字。

2、env_choose:

一个字典,包含两个键值对:

"defalt_cle":代表默认选择的环境集群号。

"only_show_cle_name":代表列表内填入团队代码,其中包含只显示当前项目的数据库信息,["kefu","loan","risk","shared","fundhub","fundplat","collection","creditcore"],如果不填展示所有。

3、tool_size:

一个列表,包含两个整数元素:

第一个整数 800:代表GUI窗口的宽度。

第二个整数 750:代表GUI窗口的高度。

六、示例

假设有一个订单ID 342566425099174219 需要查询。

输入订单ID :

- 输入 342566425099174219 到订单文本框。

选择环境 :

- 选择 “12-资金平台-测试专用A-10.80.77.125”。

执行查询 :

- 点击“查询”按钮。

此时界面上将显示来自各个表的数据,例如 t_event , t_loan_order 等。

七、提高效率的场景

快速定位问题 :

- 当查看关于订单的问题时,能够迅速查找订单状态及相关信息。

例如,要看订单在借款哪一步,可通过此工具看见订单状态和订单的其他关键信息。

监控订单流程 :

- 可以实时查看订单在系统中的处理情况,帮助监控业务流程。

例如,通过 t_event 表可以跟踪订单的状态变更历史。

数据分析 :

- 快速收集数据进行分析,比如订单的处理时间、成功率等指标。

例如,可以统计 t_lending_order 表中的订单完成率。

八、总结

此工具通过集成多个数据表查询功能,简化了数据获取的过程,大大提高了工作效率。

对测试人员来说,在工作中不仅提升查询速度,还减少了信息获取出错的可能性。

通过定制化的界面和查询逻辑,可以更加专注于业务本身,而不是数据收集过程,提高测试专注度。

上一篇 下一篇

猜你喜欢

热点阅读