7. 试验检查与调试
试验检查与调试
集成调试
集成调试是指,在试验开始前通过AppAdhoc A/B Testing平台,强制进入试验版本,通过观察试验版本运行是否正常,指标上报是否正常,判断SDK是否集成成功。集成调试数据不计入试验数据。集成调试功能在“调试”页面。
具体各个模式下集成调试如下。
Web/H5试验集成调试
输入参加试验的页面链接(注:可视化、多链接模式不需要),选择“试验版本_1_testdemo1”并点击“点击预览”,就会跳转到正在设置中的试验版本,检查版本是否正确显示,同时检查UV,PV是否加1(注:同一个浏览器在进行集成调试时,每次点击预览,UV,PV均加1)
同时,当对该页面集成指标的元素进行操作(如点击CTA按钮),相应的指标数据也会发生变化时(如点击指标button_click加1),说明试验版本已经成功集成。
当有多个试验版本时,重复上述操作,确保所有版本都验证正确。
若无法进入测试版本(包括原始版本)或无法正常统计试验数据,可能是集成过程中出现了错误,需修正后重新进行检验。错误排查见第3章
Android集成调试
对于Android集成调试,AppAdhoc A/B Testing开发了debug调试工具。用户可通过悬浮窗中扫码按钮扫码强制进入试验环境,验证代码集成是否正确,并提前检测试验版本的效果。相关调试数据将不计入试验结果。(注意,在集成调试之前,请确保试验APP已处于完全退出的状态,即杀死进程)
进入「调试」页面,可以看到试验版本的二维码。点击集成SDK后的APP,debug按钮进入扫码页面,选择「扫描加入试验(Android)」,扫描“试验版本_1_test1”页面上的二维码成功后,会自动跳回AdhocTester首页,并显示「已经加入试验」,之后打开您需要试验的APP,即可看到试验版本。
在进入试验版本后,检查UV是否加1(注意:每台独立设备进行集成调试,无论扫码进入多少次试验版本,只算一个UV)
进入APP的试验版本后,当对集成指标的元素进行操作,相应的指标数据也会发生变化时,说明试验版本已经集成成功。
若无法进入试验版本(包括原始版本)或无法正常统计试验数据,可能是集成过程中出现了错误,需修正后重新进行检验。错误排查见第3章。
当有多个试验版本时,重复上述操作,确保所有版本都验证正确。
需要说明的是:扫码后,设备会停留在该版本48小时,且不受试验流量调整的影响。如果想立即退出调试模式请点击“退出试验”。
iOS集成调试
对于iOS下的集成调试,SDK在调试模式下可通过扫码强制进入试验环境,验证代码集成是否正确,并提前检测试验版本的效果。相关调试数据将不计入试验结果。(注意,在集成调试之前,请确保试验APP已处于完全退出的状态,即杀死进程)
在您进行试验的iOS应用中点击悬浮按钮,扫描“试验版本1_1_test1”二维码,之后重新启动您的应用,即可预览该版本,检验版本配置(如果第一次无法进入试验版本,可以再重复一次这个步骤,如果还是不能进入试验版本,请参考错误排查)。关于悬浮按钮的集成请参考SDK集成文档。
在进入试验版本后,检查UV是否加1(注意:每台独立设备进行集成调试,无论扫码进入多少次试验版本,只算一个UV)
进入APP的试验版本后,当对集成指标的元素进行操作,相应的指标数据也会发生变化时,说明试验版本已经集成成功。
若无法进入试验版本(包括原始版本)或无法正常统计试验数据,可能是集成过程中出现了错误,需修正后重新进行检验。错误排查见第3章。
当有多个试验版本时,重复上述操作,确保所有版本都验证正确。
需要说明的是:扫码后,设备会停留在该版本48小时,且不受试验流量调整的影响。如果想立即退出调试模式请点击“退出试验”。
功能测试
在集成调试之后,就可以开始试验,进行上线验证。该步骤可以与已有的QA环节结合,从以下三方面进行功能测试:
- 版本状态测试
为了验证版本状态显示是否正确,以及通过后台流量切换,是否可以达到版本切换的效果,可以按以下步骤测试:
将原始版本流量切换到100%,打开测试网页或APP,此时应该显示原始版本
将试验版本1流量切换到100%,重新打开网页或重新进入APP(为了确保能够准确,APP需要杀死进程重新进入),此时应该显示试验版本1.
如果还有其他试验版本,按照步骤2执行。
1-3步达到预期效果,则版本测试结束
注意: 网页的版本切换是实时生效的,APP的版本切换默认是一个小时生效(如需配置生效时间,可在平台“配置”——>“应用配置”选项中设置,这个设置需要第二天才能生效)。但是,在Android测试机装有AdhocTester调试工具,iOS测试机显示调试悬浮标的情况下,APP的版本切换是实时生效的。 Android与iOS在调试模式下一定要首先退出,否则版本状态测试无法生效
- 指标上报测试
为了验证各个版本指标是否可以上报,可以按以下步骤测试:
将原始版本流量切换到100%,打开测试网页或APP,点击相应集成指标元素(如按钮),此时原始版本该指标值应该增加设定值(一般是1,按情况不同有区别)
将试验版本1流量切换到100%,重新打开网页或重新进入APP(为了确保能够准确,app需要杀死进程重新进入),点击相应集成指标元素(如按钮),此时试验版本1该指标值应该增加设定值(一般是1,按情况不同有区别)
如果还有其他试验版本,按照步骤2执行。
1-3步达到预期效果,则指标测试结束
注意:网页的指标上报是实时生效的,APP的指标上报切换默认是一个小时生效,但有例外,在Android测试机装有AdhocTester调试工具,iOS测试机显示调试悬浮标的情况下,APP的指标上报是实时生效的。
- 受众状态测试
这一步测试是为了验证受众定向试验是否可以针对特定受众进行试验,非受众定向试验该步骤可跳过。
设定满足受众条件的测试用户(如选择特定机型,设定年龄、性别等),将100%流量平均分配到各个版本,打开网页或APP,检查用户是否进入试验:观察网页或APP的显示版本,然后去后台观察该版本的UV是否有加1,如果UV加1,则代表用户进入了试验。
设定不满足受众条件的测试用户(如选择特定机型,设定年龄、性别等),保持流量分配不变,重新打开网页或重新进入APP(为了确保能够准确,APP需要杀死进程重新进入),检查用户是否未进入试验:观察网页或APP的是否显示默认版本(一般默认版本为原始版本),然后去后台观察原始版本是否UV有加1,没有则代表用户没有进入试验。
功能测试
在集成调试之后,就可以开始试验,进行上线验证。该步骤可以与已有的QA环节结合,从以下三方面进行功能测试:
版本状态测试
为了验证版本状态显示是否正确,以及通过后台流量切换,是否可以达到版本切换的效果,可以按以下步骤测试:
将原始版本流量切换到100%,打开测试网页或APP,此时应该显示原始版本
将试验版本1流量切换到100%,重新打开网页或重新进入APP(为了确保能够准确,APP需要杀死进程重新进入),此时应该显示试验版本1.
如果还有其他试验版本,按照步骤2执行。
1-3步达到预期效果,则版本测试结束
注意:
网页的版本切换是实时生效的,app的版本切换默认是一个小时生效(如需配置生效时间,可在平台“配置”——>“应用配置”选项中设置,这个设置需要第二天才能生效)。但是,在Android测试机装有AdhocTester调试工具,iOS测试机显示调试悬浮标的情况下,app的版本切换是实时生效的。
Android与iOS在调试模式下一定要首先退出,否则版本状态测试无法生效。
指标上报测试
为了验证各个版本指标是否可以上报,可以按以下步骤测试:
将原始版本流量切换到100%,打开测试网页或APP,点击相应集成指标元素(如按钮),此时原始版本该指标值应该增加设定值(一般是1,按情况不同有区别)
将试验版本1流量切换到100%,重新打开网页或重新进入APP(为了确保能够准确,APP需要杀死进程重新进入),点击相应集成指标元素(如按钮),此时试验版本1该指标值应该增加设定值(一般是1,按情况不同有区别)
如果还有其他试验版本,按照步骤2执行。
1-3步达到预期效果,则指标测试结束
注意:
网页的指标上报是实时生效的,APP的指标上报切换默认是一个小时生效,但有例外,在Android测试机装有AdhocTester调试工具,iOS测试机显示调试悬浮标的情况下,APP的指标上报是实时生效的。
受众状态测试
这一步测试是为了验证受众定向试验是否可以针对特定受众进行试验,非受众定向试验该步骤可跳过。
设定满足受众条件的测试用户(如选择特定机型,设定年龄、性别等),将100%流量平均分配到各个版本,打开网页或APP,检查用户是否进入试验:观察网页或APP的显示版本,然后去后台观察该版本的UV是否有加1,如果UV加1,则代表用户进入了试验。
设定不满足受众条件的测试用户(如选择特定机型,设定年龄、性别等),保持流量分配不变,重新打开网页或重新进入APP(为了确保能够准确,APP需要杀死进程重新进入),检查用户是否未进入试验:观察网页或APP的是否显示默认版本(一般默认版本为原始版本),然后去后台观察原始版本是否UV有加1,没有则代表用户没有进入试验。
问题排查
当在集成调试或功能测试中出现无法正确显示版本或无法上报指标的问题时,可按照以下步骤排查。
Web/H5试验
- 检查请求是否正常
在SDK集成正确的情况下,进入试验页面,应该出现两个请求:get_flags_async和tracker。
如果没有看到这两个请求,那表示SDK集成不正确,请重新按照步骤集成SDK;
如果出现红色异常请求,则可能是本地网络问题
- 检验变量返回是否正常
检验flags变量返回值是否与页面展示版本相吻合。如果不吻合,则可能为SDK集成有误,请重新检查SDK集成。
- 检验指标上报是否正常
检验3项:
Experiment_ids:当显示以“Control”开头的字符串,表明不在试验里。当显示以“Debug”开头的字符串时,表明是调试模式。其余情况均为正常试验。
Key:对应的指标名称
Value:指标值
如果3项中有问题,可能为SDK集成问题,请重新集成SDK。
若经过以上步骤排查,依然没有解决问题,请及时联系对应的CSM。
Android和iOS试验
Android,iOS的排查需要用到Charles等抓包工具。Charles的设置方法可参考:
(注意iOS10.3版本以上需要额外证书:[http://www.neglectedpotential.com/2017/04/trusting-custom-root-certificates-on-ios-10-3/](http://www.neglectedpotential.com/2017/04/trusting-custom-root-certificates-on-ios-10-3/))
检查请求是否正常