浅析报表的测试

一、了解需求

1.筛选查询的时间区间,最大多久范围的?无时间范围,近1年、近半年;

2.筛选时间的最小纬度?1天、周、月、季度等;
二、了解开发的实现方式

1.通过快照保存各天的数据,某条数据,操作后,有变动后,更新快照里面的数据;(此时,测试过程中要将不同方式操作,状态的变更都测试到)

2.通过数据库实时查询;(因为之前已经将功能变更都测试过了,所以这个测试着重看数据查询的是否正确);

三、测试

1.页面权限?数据权限?

 

1.有些可以通过页面直接查询的,直接通过页面查询;(用户也是通过页面查询的,这是最有效复现bug的过程)

2.不可以通过页面直接查询的;

a.如查询通话状态,页面无筛选查询项,但列表有展示该字段;

  可以通过python对响应数据,简单处理一下,再进行统计;【大致步骤:将查询区间的所有响应结果(如查询出200条,那么记得把分页改成200),保存在.txt文件,读取txt文件,解析成python对象,后续就是对字典、列表的处理了,YYDS】

注意:若是默认分页最大只有150,1.可以请前端帮忙改成200 ;2.charels 打断点 修改请求参数;3.通过接口请求查询;

b.线索tab,列表返回某字段;想要查询某时间区间线索的所有通话次数;

  方式1:需要点击某线索-详情,才可以查看该条线索的通话次数;

  方式2:通过通话记录tab,筛选查询,查出某条线索的通话次数;

方式1&2,只能单条线索查询,此时咱们可以python多线索列表、通话记录列表的响应结果,进行处理,算出响应的值;

3.对于有些页面操作,过于繁琐,需要请求的接口太多的,咱们可以通过数据库查询;

数据库的操作,基本都是多表查询了;

1.如线索可多次跟进,首次跟进间隔时长?  mysql 分组排序,取每组的第1条;

  假如多条数据,第1条是需要的数据,若是不是;那么还需要先排序,再分组;

  select * from (select * from a order by a.time desc)t group by t.id;

2.线索分配时长;2h,2-12h,12h以上;数据库的某个字段,不同条件时,

  case when  条件 then 值 else ‘其它’ end as 字段名称;

    when 后面是一个逻辑表达式,若表达式为真,则展示then 值;

3.比较时间之差;【注意:百度搜索到的结果,多种方法的,某种方法查询结果不正确的,我们先尝试更换方法】 

 

select time_to_sec(timediff('2022-02-18 10:06:00', '2022-01-25 10:49:00')); #时间太大,算的有问题;
select timestampdiff(second, '2022-01-25 10:49:00','2022-02-18 10:06:00');
select unix_timestamp('2022-02-18 10:06:00')-unix_timestamp( '2022-01-25 10:49:00');

4.mysql 聚合函数

  max,min,count,sum,avg;

  注意:count(1)执行要比count(主键id)快一些;

  count(*)count(主键id) 和 count(1) 都表示返回满足条件的结果集的总行数;而count(字段)则表示返回满足条件的数据行里面,参数“字段”不为 NULL 的总个数

 https://www.cnblogs.com/String-song/p/16035718.html

http://t.zoukankan.com/richered-p-8490776.html

 

posted on 2022-05-12 11:55  星空6  阅读(62)  评论(0编辑  收藏  举报

导航