软件测试

C端广告打点辅助工具

2019-05-31  本文已影响26人  zi萱

背景简单交代一下,业务是广告平台,广告主要展现在C端,C端每接入一个广告位需要QA介入测试,主要针对广告展现、广告的pv/click的数据上报。
由于历史原因,C端并不统一采用sdk方式接入。
由于C端以及广告平台均是公司业务,cpc广告才刚刚开始接入,公司并未重视各接入方的收入情况,以及各种内部广告及宣传的融合。
各种原因吧,导致上报数据不准确。这个风险性是显而易见的。(但总有人对风险视而不见)
临时抱佛脚的修复,随着广告位越来越多,积攒的问题也会越来越多。

有必要分析一番
  1. 关于上报数据问题:该是C端QA来保证质量还是广告QA来保证?
    理论上广告QA只需要保证请求展现、pv/click上报接口以及后续报表的正确,反作弊系统正常运作。可是由于业务的历史原因,这个责任落到了广告QA身上。(其实就是各方PK失败😢)
再来分析一番
  1. 什么样的需求会用到自动化工具呢?
    (1)新增广告位
    (2)C端优化
    (3)广告侧广告引擎优化=》影响展现
    (4)广告侧上报服务优化
    我们来讨论一下(1)(2)(4),(3)可以通过广告QA接口测试来保证质量,不做赘述。
  2. 如何做全自动/半自动化工具?
今天主要说一下第(1)种方案,第(2)种很简单,第(3)种非常复杂,性价比不高。
辅助打点测试方案:
经过以上分析,针对C端有改动,广告侧无改动情况,方案图如下 image.png

通过配置文件来配置需要校验的数据,抓包,过滤上报请求,校验上报字段正确性,做的好看一点可以输出报告。

还有有几个小点想提一下:
  1. 我进了一个页面,一下子有10几条上报数据,怎么check?
    首先你要明确要测试广告位的上报条数,是上报一条还是多条,每条上报是否是一样的?只需要将自己需要校验的数据过滤出来并check就可以了
  2. 期望结果有多个,实际结果只要match上一个就算通过
  3. 有一些点我们未必可以check的很全,比如广告id,如果每次都有变化,最好用正则去match
选型

没做什么特别的对比分析,没什么权威性,不过可以说用起来还不错。
原来想用一个基于nodejs的开源库,后来还是选择了mitmproxy,基于python的,选择自己熟悉的没错。

整个程序可以说就是在分析数据,校验数据,输出校验结果,没别的了。整个工程不超过500行代码。

由于没什么代码没什么通用性,就不分享代码了,大家可以动手做起来,代码虽不通用,但想法是可以借鉴的。

附一下我的代码结构 image.png

config/:存放期望结果配置
core/:核心代码(每次执行后,再去生成html报告即可)
report/:本次测试结果,缓存在这里
static/:html模板,用于生成html报告

干货送给大家,喜欢点赞👍
上一篇下一篇

猜你喜欢

热点阅读