zoukankan      html  css  js  c++  java
  • MySQL Test Suite使用

    MySQL Test Suite使用

    MySQL自动测试套件(The MySQL Test Suite)用于对MySQL程序进行测试,包括各种功能与存储引擎。包含于MySQL与MariaDB版本代码中,位于mysql-test目录下。总体测试脚本为mysql-test-run.pl。该perl脚本通过调用各种已有的测试脚本,将测试结果与预置的result文件做对比来判断测试是否通过。(任何一点差异都会导致测试失败,包括预期之外的warning)
     
     

    一、主要目录介绍

      • include
    包含.inc文件,用于测试开始时判断是否满足测试条件,在测试用通过source命令引入
    如hava_innodb.inc:

    如不满足,则会跳过需要该验证的测试。
      • suite
    包含所有测试suite,每一个suite为一个测试用例集,具体用例集在2节介绍
     
     
      • t
    1、测试文件
    例:1st.test

    上面内容即为1st这个测试用例的测试脚本
     2、配置文件
    例:innodb_bug53674-master.opt
    –loose-innodb-locks-unsafe-for-binlog –binlog-format=mixed
    为该测试需要的特殊配置项
     
    3、脚本文件,在测试开始之前执行的脚本
    例:rpl_misc_functions-slave.sh
    rm -f $MYSQLTEST_VARDIR/master-data/test/rpl_misc_functions.outfile
     
     
      • r
    结果文件,判断是否通过的依据
    使用上面的例子:1st.result

    执行完1st用例会严格比对该文件。完全一致则测试通过。
      • std_date
    有些测试需要用到一些标准数据。
     
      • var
    测试默认使用该文件夹下的my.cnf文件
     
     

    二、测试用例集

    ./mysql-test-run.pl不带任何参数表示执行所有测试用例集。使用—suite=suitename来指定单独执行suitename目录下的所有测试用例。
    测试用例集包括:

     

    三、主要参数

    force:默认情况下,只要遇到一个用例出错,测试程序就会退出,在指定force的情况下,测试程序会继续执行下面的测试(但是最多发现10个错误还是会退出)
    suite:指定使用的测试suite
    do-test:会以输入的字符串进行匹配用例执行
    skip-test:会以输入的字符串进行匹配跳过用例执行
    big-test:执行标记为big的测试用例。因为用例较大、耗时较长,标记为big的用例默认不会执行。输入两遍big-test则只执行标记为big的测试用例
    recored:重新生成结果文件
    mysqld:传递启动参数给mysqld,每个参数需要分别指定一个mysqld
    其他还有很多选项,可以使用./mtr –help查看
     
    如果需要在服务启动前执行一些脚本,可以写在 t/testname.sh文件中,由mtr自动执行。
     
     

    四、测试举例

    例1:
     
    可以看出共完成12个测试用例,全部通过。1个用例必须在debug模式下测试,所以跳过。测试过程中服务重启3次。测试默认使用16000-16019端口。
     
    例2:

    每个测试结束前,mtr会检索error日志,如果发现warning或error,则测试失败。
    再来看两个失败用例:
    (截取部分日志)

    分析日志可以看出是在测试过程中在错误日志中发现了warnings/errors。原因是使用了废弃的参数innodb_locks_unsafe_for_binlog导致warning。
    找到并修改配置文件:innodb_bug53674-master.opt
    将–loose-innodb-locks-unsafe-for-binlog –binlog-format=mixed
    修改为:–transaction-isolation=READ-COMMITTED –binlog-format=mixed
     
    重新测试:

    不再有warning,测试通过。
  • 相关阅读:
    大型web系统分布式架构
    与MSN聊天的PowerTalk两个示例
    PowerTalk的四个示例代码
    PowerTalk在十月份左右会有新的版本
    PowerTalk控件 制作 即时通信 聊天室 产品咨询系统 支持与MSN的控件
    PowerTalk有些对不住大家
    自动生成实体sql工具的IDEvs2005工具(源代码+程序)
    C#字符串类快速编译器
    小菜编程成长记系列
    一道简单的编程题,不过您做对了吗?
  • 原文地址:https://www.cnblogs.com/timssd/p/10210578.html
Copyright © 2011-2022 走看看