以基于behave的sql覆盖测试为例
找配置的方法:
查看使用的behave测试命令是否指定-Ddble_conf,如果未指定表示使用默认dble配置template。
dble_conf的值与配置文件对应关系如下:
dble_conf | 配置目录 |
---|---|
sql_cover_mixed | behave_dble/dble_conf/sql_cover_mixed_bk |
sql_cover_global | behave_dble/dble_conf/sql_cover_global_bk |
template | behave_dble/dble_conf/template_bk |
sql_cover_nosharding | baheve_dble/dble_conf/sql_cover_nosharding_bk |
sql_cover_sharding | baheve_dble/dble_conf/sql_cover_sharding_bk |
找数据的方法:
通过测试执行的标准输出,可以看到behave用例失败的记录,举例:
Scenario: #5 compare new generated results is same with the standard ones # features/sql_cover/sql_mixed.feature:43
When compare results in "sql_cover_mixed" with the standard results in "std_sql_cover_mixed" # features/steps/step_check_sql.py:504
Assertion Failed: result is different with standard, Oop! results are different with the standard ones, try 'diff -qwr cmp_std_sql_cover_mixed/.../file1 cmp_sql_cover_mixed/.../file2' to see the details
Only in cmp_sql_cover_mixed/sqls_mixed/bugs: bug_fail.log
关键信息:Only in “cmp_sql_cover_mixed/sqls_mixed/bugs: bug_fail.log”
这句日志表明出问题的sql文件是:bug.sql(bug_fail.log)
sql文件所在目录是:sql_cover_mixed/sqls_mixed/bugs/
可以通过查看bug_fail.log的内容分析哪些失败语句只在当次运行失败,在期望的标准比对结果中未失败,以及执行失败的详细信息,如,报错信息,直连MySQL的执行结果等。
有了出错的配置和数据,尝试分析相关日志。为了方便追踪问题,我们对自动化日志,dble日志都进行了一定范围版本的保存。可以通过自动化日志找到出问题的时间,然后在dble相应范围的日志内详细追踪。如果分析日志有困难,可以尝试复现。
为了更好的解决您发现的问题,需要麻烦您完成以下操作:
确认是产品bug还是自动化项目的bug,如果可确认,请到相应项目提issue。如果不能确认分类,请将问题提在自动化项目的issue下。为了能够更好的追踪定位问题,dble和自动化项目都提供了issue模板。请尽可能将issue填写完整,并补充您认为的重要信息。
-
dble的issue地址:https://github.com/actiontech/dble/issues
-
自动化项目的issue地址: https://github.com/actiontech/dble-test-suite/issues