暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql-test 测试框架 简介 2

原创 quantumdb 2022-06-09
817

继续 上篇,继续介绍使用这个测试框架的一些贴士。


./mtr  不指定任何参数可以直接运行测试用例集。

./mtr  --print-testcase   如果想知道测试框架选择了哪些测试用例,可指定--print-testcase。此时不会实际运行测试用例,但打印出所有选择的测试用例,并按照它们运行的顺序。

同时还支持多种 参数 控制运行哪些测试用例集或测试用例的选项。例如 --do-test 可指定运行特定的测试用例,并支持正则表达式; --suite 可指定运行特定的测试用例集;-do-test-list =FILE 可运行用户自己定制的文件中的测试用例集合。

--skip-test 作用与 -do-test 相反,跳过某些测试案例。--skip-test-list=FILE 与 -do-test-list =FILE 相反,跳过FILE中列出的测试用例。 


一些其他的运行参数,

--timer  显示测试用例的执行时间。使用no-timer来禁用。

--force-restart 始终在测试用例之间重新启动服务器。

--repeat=N  每个测试用例运行N次,不管其是成功还是失败。 

--retry=N 如果一个测试用例失败了,它最多可以重试N次(默认为1)。retry也受停止前的最大失败次数的限制( --retry-failure选项)。除非同时使用--force,否则这个选项没有任何作用;没有这个选项,测试执行将在第一次失败后终止。--retry和--retry-failure选项并不影响用--repeat重复测试的总失败次数,因为每一次重复都被认为是一个新的测试案例,如果失败了,还可以重试。

--retry-failure=N 当使用--retry选项重试失败的测试用例时,在发生N次失败时停止(默认为2)。把它设置为0或1可以有效地关闭重试。

--testcase-timeout=MINUTES 最大测试用例运行时间,以分钟为单位(默认为15)。

--suite-timeout=MINUTES 测试套件的最大运行时间,以分钟为单位(默认为360)。


通常,使用如下命令去运行测试框架下的所有测试用例集。指定--force 使得 mtr 执行继续,无论测试案例是否失败(默认情况下,如果测试案例失败,mtr 会退出) ; --retry-failure=0 指定失败的测试用例不去重新运行;测试用例30分钟超时,测试用例集720分钟超时。

./mtr --force --max-test-fail=0 --retry-failure=0 -no-reorder --big-test --testcase-timeout=30 --suite-timeout=720


测试框架运行中的出现的一些典型错误:

1. result文件过时。

有测试用例的result文件中有当前年份,这测试用例随着时间的变迁,下一年及以后就会失败。这种情况下,要重新生成 result文件 ./mtr --record suite-name.testcase-name,例如 ./mtr --record main.read_only_ddl

2. 一些测试用例需要用非root用户运行才能成功。

3. 测试用例里面重启mysqld的时候需要指定 --user=root ,否则mysqld会起不来导致测试用例失败 或者 验证 .result 文件匹配导致失败。log里面出曝出 “ 

[ERROR] [MY-010123] [Server] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root! ”这样的错误。


 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论