A dedicated team in this company handles entire Ads functionality and they have to do quick round of testing on daily builds, which includes Smoke Test, Custom Parameters Test cases, Regression test cases etc.
This was running more than 200+ test cases manually against each mobile build for Ad Tech deliveries which is impacting the delivery dates, time to market , cost etc. To overcome these pain points, it was decided to automate the manual test cases, to start with the team will start automating smoke tests initially and will progress on rest of the regression and functional test cases in both iOS and Android.
Hybrid framework with the combination of data-driven and keyword driven is used to achieve ads automation in mobile app.
Test cases are developed using Microsoft Excel with the available list of keywords.
When the test is executed, the framework processes the Excel workbook and calls the functions associated with the keywords entered in the Excel spreadsheet. These keyword functions in turn perform specific actions against the mobile app and once it is completed the test results are updated with Pass/Fail in the spreadsheet with the returned value of the parameter.
iOS Automation was implemented using XCUITest with inbuilt Xcode8 automation and Appium.
And for identifying elements in the mobile app, we are using keyword driven framework where we are searching for keywords like custom parameters which are like ‘cnd’, ‘dma’, ‘plln’, ‘zip’ etc. in the app and writing assertions to validate the values coming from the pubad call against the expected values with the help of Headless Charles tool. Likewise we will have to follow the same approach for 99 such custom parameters.
Network Requests in the app
To capture the HTTP/HTTPS requests and responses within the app like PubAds calls, Factual, Lotame, etc will done using Network traffic capturing tool called HeadLess Charles. Find the snippet of the tool for an idea
The delivery model agreed to be followed for this mobile test automation is the scrum variant of Agile methodology with 2 week sprint each where to start with the team will initially work on designing the framework, once the framework is approved by the stakeholders we will proceed to automate the smoke test cases and then regression tests later.
Any tasks which needs to be performed by Monocept will be added as items in product backlog in JIRA, and tickets prioritization will done by the weather stakeholders, post which sprint will start.
- IDE code ->Selenium Web driver(using Eclipse)
- Programming ->Core Java
- Automation -> Appium
- POM -> Maven
- Test reporting -> Allure and Test NG
- Continuous Integration-> Jenkins
- Capturing N/W logs -> Headless Charles
- Retry analyzer -> Re-run the test cases if they failed / Skipped
- Hockey app -> Release notifications
Allure Reporting framework
Allure reporting framework will be used to offer user-friendly reports like summary and Detail level Dashboard reporting. Further to the reports generated, the scope of reporting will also be on test results of pass and fail shared via email to a specified distribution list.
Continuous Integration with Jenkins
We have setup a daily scheduler in Jenkins for Testflight and hockeyapp both, where we are continuously polling for new builds, if new build is build, download the build and launch it through automation.
- Now Executing all smoke test cases for a daily build will take just 7 minutes.
- Came up with Hybrid framework to execute all the custom parameters which will take 15 minutes to execute all 108 custom parameters test cases for each feed.