算法的测试

一、算法规则

   

二、测试方案

  1、6小时更新一次:一般开发会间隔6小时更新数据一次,那么更新的数据存储在哪里去了呢?一般会放在Redis缓存中。

  2、示例:来源时间在近3天内,平台C端用户浏览最多前10条。想要得到这个数据,得使用mysql数据库的查询语句结合对应的表搜索出数据

  3、针对搜索出的数据与Redis缓存中的数据进行对比,即可得到想要的值

  注:

    (1)一般开发想Redis中存储中,会使用到key,具体的key询问开发向开发获取;

    (2)Redis的相关配置询问开发,由开发协助配置

    (3)6个小时一更新对于测试来说,间隔时间太久不方便快速查看结果,因此,快速的处理方案:询问开发更新脚本,需要查看数据时自己执行脚本。

三、测试实现步骤

  (1)询问开发获取到的key值示例如下:

    /**
     * redis集合key
     * 1.發布時間在近$1天內
     * 2.平台的C端用戶瀏覽最多前$1條
     */
    const SET_KEY_RANK_TYPE_ARTICLE_CVIEW = 'content_rank_type_article_cview_set';

  (2)来源时间在近3天内,平台C端用户浏览最多前10条  的SQL查询语句示例如下

select cal.action_souce_id,cal.create_at,a.uuid,al.title,a.published_at,count(al.title) from c_user_action_log cal 
join article a on cal.source_uuid = a.uuid join article_lang al on a.uuid = al.article_uuid where cal.action_souce_id = "11"
and al.lang = "zh-cn" and DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 4 DAY) <= date(published_at) and a.status=4 and a.deleted=0 group by al.title order by count(al.title) desc limit 10;

  (3)将问开发获取的 content_rank_type_article_cview_set  输入到redis中进行搜索

 

   (4)查看Redis查询到的缓存值

   (5)将获取到的value值,与自己执行SQL的查询结果进行对比,若值相等,则测试通过,若不相等,则测试失败。

    注:因为我没有进行6小时规则的脚本更新,所以查询的SQL数据值是最新的要多于Redis缓存中的数据

  (6)连接测试环境服务器,进行更新脚本(6小时更新的规则,此处运行脚本进行更新) 

    1、进入服务器,询问开发进入命令与密码

    2、询问开发脚本对应的命令

    具体的测试示例如下:

 

 此时更新脚本已执行完,再次查看Redis缓存中的数据将会与SQL查询出的数据相对应

原文地址:https://www.cnblogs.com/syw20170419/p/11801376.html