3 Stimmen

Wie automatisiert man die Validierung von Omniture-Ereignissen für mobile Apps?

Ich habe eine iOS- und Android-App, die Omniture-Ereignisse auslöst. Ich erfasse diese Ereignisse über das Charles-Proxy und validiere sie manuell. Es wird viel Zeit in Anspruch nehmen, um sie manuell zu validieren. Gibt es eine Möglichkeit, Omniture-Ereignisse automatisch zu validieren? Es wird mir wahrscheinlich helfen, viel Zeit zu sparen.

Vielen Dank im Voraus

0voto

Bob Saget Punkte 16

Ich habe zuvor Omniture in eine Android-App integriert, ich fühle deinen Schmerz.

Adobe hat ein Tool namens Bloodhound, das als falscher Omniture-Server fungiert.

Obwohl es nicht bei der Automatisierung hilft, hilft es beim Debuggen, weil es die Auswertungen, Variablen und Ereignisse für dich aufschlüsselt.

0voto

Michał Kreft Punkte 548

Wenn Sie eine Objekt als Abstraktionsschicht zwischen ADMS_Measurement und Ihrer Anwendung hinzufügen, kann es verwendet werden, um alle Ereignisse zu überprüfen, die Sie in Tests erwarten (Sie müssten Tests für diese Lösung haben). Alternativ könnten Sie versuchen, das ADMS_Measurement-Objekt zu mocken, aber ich habe diesen Ansatz noch nie ausprobiert. Angenommen, das Objekt ist so strukturiert

@implementation OmnitureWrapper ()

@property (nonatomic, strong) ADMS_Measurement *admsMeasurement;

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

@end

In Tests können Sie ein Mock-Objekt von OmnitureLayer erstellen und erwarten, dass es den Aufruf von -(void)track:(NSDictionary *)trackingVars erwartet und überprüft, ob die Parameter wie erwartet waren. Zum Beispiel mit OCMock:

- (void)testActionXShouldSendOmnitureEventsY {
    id omnitureMock = [OCMockObject mockForClass:[OmnitureWrapper class]];
    [omnitureMock expect] track:[OCMArg checkWithBlock:^BOOL(id obj) {
        NSDictionary *trackingVars = (NSDictionary *)obj;
        //TODO überprüfen, ob alle Variablen wie erwartet sind
    }];

    //TODO tatsächlicher Testcode

    [omnitureMock verify];
}

Sie müssen Tests für jedes Ereignis schreiben, das Omniture-Tracking auslösen wird, und dann überprüfen, ob es korrekt aufgerufen wurde, aber wenn dies für Sie wichtig ist, kann es sich langfristig auszahlen.

0voto

Alex T Punkte 139

Der einzige zuverlässige Weg, den ich gefunden habe, ist, die Ereignisdaten aus dem Adobe SDK zu konvertieren, bevor sie während des Testlaufs an einen temporären Ordner auf dem Gerät/Simulator gesendet werden. Dann kann Ihr Test auf diese Datei zugreifen und ihre Daten in Ihrem Testskript überprüfen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X