算法的测试
一、算法规则
二、测试方案
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查询出的数据相对应