测试人社区

文章算法相似度的自动化持续集成

测试用例的编写

  1. 如何设计数据表?
  2. 如何读取数据库?
  3. 如何调用算法接口?
  4. 如何跑测试用例?
  5. 如何批量跑测试用例

Jenkins持续集成

  1. 创建了freeStyle的模式
  2. Git源码管理
  3. 定时触发机制
  4. 使用shell脚本构建

发送企业微信告警

  1. 如何使用企业微信收告警?
  2. 使用restassured 方法, 发送post请求
  3. 如何汇总测试用例集的结果

测试用例的编写

  1. 如何设计数据表?
    在思考文章相似度测试场景如何自动化时, 首先想到的是从数据库里读取两端相似的文本, 放入接口里, 看比对结果是不是预期的. 按照这种思路, 我首先设计了数据表结构
    企业微信截图_d936060b-1336-454e-a1e3-6d05864abda0

  2. 如何读取数据库?
    有了数据表, 就要写代码数据库读取. 因为工作中一直用Java, 所以就用了Java写. 因为数据表和数据库都比较简单, 就用了JDBC原生方式连接MySql数据库.
    企业微信截图_dc123df9-558c-435a-8eba-3ac9cfc358bb

  3. 如何调用算法接口?
    因为相似度算法比较简单, 就三个方法, 所以把这单个方法直接copy过来了, 成为一个内部的方法.
    企业微信截图_1f96c2c4-0ff3-42f6-89b4-5b6309474a75

  4. 如何跑测试用例?
    通过用例id, 去数据库获得比较相似性的文本A和文本B,调用相似度算法的方法, 得出相似度的值
    企业微信截图_dc123df9-558c-435a-8eba-3ac9cfc358bb

  5. 如何批量跑测试用例
    数据库里的用例有很多, 需要批量跑, 所以使用Junit5的@ParameterizedTest注解. 会循环取参数, 直到取完
    如何把第一步中获取的id list参数传入呢? 用@MethodSource 注解
    企业微信截图_3aa7aaf0-a839-4d02-8f3c-eec33a14f99f

Jenkins持续集成

如何程序集成呢? 使Jekins每天定时跑.

  1. 创建了freeStyle的模式
  2. 源码管理: 测试代码在git上,添加Git地址, 相应分支
  3. 触发机制: 每天早上10点
  4. 构建: 使用shell脚本, 运行指定的测试类

发送企业微信告警

测试运行完成后, 想在企业微信里收到告警, 所以增加了下面的步骤

  1. 如何使用企业微信收告警?
    企业微信有个群机器人, 可以通过调用他的api, 给这个群发告警. https://work.weixin.qq.com/api/doc/90000/90136/91770#如何使用群机器人
  2. 如何在测试代码里调用群机器人的接口, 使用restassured 方法, 发送post请求

    如何发送完整的测试结果?
    自己编写了代码, 单条用例结果汇总后, 如果全对, 就发送PASS结果, 如下
    企业微信截图_b46e124b-af95-48c0-8ca1-b8cab3b943be
    如果失败, 把错误的案例打印出来
    企业微信截图_02431c03-0d37-4e69-ad64-ec7ff22eb874
  3. 如何汇总测试用例集的结果
    企业微信截图_6d647587-79d7-4c7b-8bc9-46d0792cbddb
2 Likes