Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何为移动应用程序自动验证omniture事件?_Android_Ios_Adobe Analytics_Charles Proxy - Fatal编程技术网

Android 如何为移动应用程序自动验证omniture事件?

Android 如何为移动应用程序自动验证omniture事件?,android,ios,adobe-analytics,charles-proxy,Android,Ios,Adobe Analytics,Charles Proxy,我有一个iOS和android应用程序,可以触发omniture事件。我通过Charles代理捕获这些事件并手动验证这些事件。手动验证需要很多时间。有没有办法自动验证omniture事件?这可能会帮我节省很多时间 提前感谢之前将Omniture集成到Android应用程序中,我感觉到了你的痛苦 Adobe有一个名为“猎犬”的工具,你可以使用它作为一个假的Omniture服务器 虽然它对自动化没有帮助,但对调试也有帮助,因为它为您分解了evals、vars和events。如果您在ADMS_度量和应

我有一个iOS和android应用程序,可以触发omniture事件。我通过Charles代理捕获这些事件并手动验证这些事件。手动验证需要很多时间。有没有办法自动验证omniture事件?这可能会帮我节省很多时间


提前感谢

之前将Omniture集成到Android应用程序中,我感觉到了你的痛苦

Adobe有一个名为“猎犬”的工具,你可以使用它作为一个假的Omniture服务器


虽然它对自动化没有帮助,但对调试也有帮助,因为它为您分解了evals、vars和events。

如果您在ADMS_度量和应用程序之间添加一些对象作为抽象层,它可以用来验证您希望在测试中发送的所有事件(您需要对此解决方案进行测试)。或者,您可以尝试模拟ADMS_测量对象,但我从未尝试过这种方法。给定对象的结构如下

@implementation OmnitureWrapper ()

@property (nonatomic, strong) ADMS_Measurement *admsMeasurement;

- (void)track:(NSDictionary *)trackingVars {
    [self setupVariables:trackingVars];
    [self.admsMeasurement track];
}

@end
在测试中,您可以创建OmnitureLayer的模拟,并使其期望调用-(void)track:(NSDictionary*)trackingVars,并验证参数是否符合预期。例如,使用OCMock:

- (void)testActionXShouldSendOmnitureEventsY {
    id omnitureMock = [OCMockObject mockForClass:[OmnitureWrapper class]];
    [omnitureMock expect] track:[OCMArg checkWithBlock:^BOOL(id obj) {
        NSDictionary *trackingVars = (NSDictionary *)obj;
        //TODO check if all vars are as expected
    }];

    //TODO actual test code

    [omnitureMock verify];
}

您需要为每个会导致Omniture跟踪的事件编写测试,然后验证是否正确调用了它,但是,如果这对您很重要,那么从长远来看,它可能会有回报。

我找到的唯一可靠的方法是在测试运行期间向设备/模拟器上的临时目录发送请求之前,从Adobe SDK中转换事件数据。然后您的测试可以访问此文件并在测试脚本中断言其数据