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

问题描述 投票:4回答:3

我有一个iOS和Android应用程序,可以触发omniture事件。我通过Charles Proxy捕获这些事件并手动验证这些事件。手动验证需要花费大量时间。有没有办法自动验证omniture事件?它可能会帮助我节省大量时间。

提前致谢

android ios adobe-analytics charles-proxy
3个回答
0
投票

在将Omniture集成到Android应用之前,我感到很痛苦。

Adobe有一个名为Bloodhound的工具可以作为假Omniture服务器使用。

虽然它对自动化没有帮助,但它有助于调试,因为它可以为您分解故事,变量和事件。


0
投票

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

@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跟踪的每个事件编写测试,然后验证它是否被正确调用,但如果这对您很重要,那么从长远来看它可能会得到回报。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.