Using APK Files from APKPure for Mobile Test Automation in Katalon

While working on Android mobile test automation with Katalon Studio, one common challenge is obtaining specific APK versions for testing, especially when validating regression issues or reproducing bugs from older releases. In such scenarios, platforms like APKPure can be helpful as they provide access to APK files and previous app versions that may no longer be available on the Play Store. Testers can download the required APK, install it on an emulator or real device, and then connect it with Katalon to perform automated functional or UI testing. This approach can be useful for maintaining consistent test environments, although it’s important to verify app integrity and follow best practices when using external sources. I’m curious to know how others in the Katalon community manage APK versioning for mobile automation and whether external APK sources are part of your testing workflow.

2 Likes

Thank you for your interesting insight, I might bring our Gurus to this topic @grylion54 and @kazurayam

I do not do mobile testing in katalon at all. I know nothing about it.

@jaxon806read can ask the same question to some AI (ChatGPT, Copilot, Claude, … etc) for suggestions.

1 Like

in my case, i usually use Firebase App Distribution (Firebase App Distribution) instead of third-party sources like APKPure

it helps a lot because we can manage and distribute APKs internally, and testers can easily select a specific APK version for regression testing or reproducing issues from previous releases

this approach also feels safer since the APKs come directly from our CI/CD pipeline, so app integrity is guaranteed

1 Like

Summary & Best Practices for APK Versioning in Katalon Studio

Based on the official Katalon documentation and best practices, here’s a comprehensive overview of how to manage APK versions for mobile automation:

Official Katalon Approaches

1. TestCloud Application Repository (Recommended for Enterprise)

Source: Mobile Recorder Utility - Upload Mobile App to TestOps

Katalon provides an official, secure method for managing APK versions:

  • Upload to TestOps Application Repository: Store APK files (.apk, .aab, .ipa) directly in Katalon TestOps
  • Size Limit: 500MB per application
  • Storage Duration: 60 days (with team sharing)
  • Version Control: Automatically tracks uploaded versions
  • Security: Centralized, authenticated access through your Katalon account

Steps:

  1. Sign in to Katalon TestOps
  2. Go to Test Execution > Application Repository
  3. Click Upload Application and select your APK
  4. Use the uploaded version in Mobile Recorder/Spy utilities

2. Local APK Management

Source: Create and Run Android Test Case

For local testing:

// Reference APK from your project directory
String appPath = relativeToAbsolutePath('path/to/your/app.apk', getProjectDir())
Mobile.startApplication(appPath, false)

Best Practice: Store APKs in your project’s resources or apk_versions folder with version naming:

project_root/
├── resources/
│   ├── apk_versions/
│   │   ├── app_v1.0.0.apk
│   │   ├── app_v1.1.0.apk
│   │   └── app_v2.0.0.apk

Regarding External APK Sources (APKPure, etc.)

While your question about using external sources like APKPure is valid, here are important considerations:

Aspect Recommendation
Security :warning: Verify app integrity and signatures before use
Licensing :white_check_mark: Ensure compliance with app licensing terms
Version Control :white_check_mark: Maintain internal version tracking/documentation
Enterprise Use :white_check_mark: Use TestOps Application Repository instead
Regression Testing :white_check_mark: Request older versions from your development team
CI/CD Pipelines :white_check_mark: Store APKs in artifact repositories (Artifactory, Nexus)

Recommended Workflow for Version Management

For Regression Testing & Bug Reproduction:

// Define APK versions in a configuration file
def apkVersions = [
    'v1.0.0': 'resources/apk_versions/app_v1.0.0.apk',
    'v1.1.0': 'resources/apk_versions/app_v1.1.0.apk',
    'v2.0.0': 'resources/apk_versions/app_v2.0.0.apk'
]

// Use in test case
@Keyword
def testWithVersion(String version) {
    String appPath = apkVersions[version]
    if (!appPath) {
        throw new Exception("APK version ${version} not found")
    }
    Mobile.startApplication(appPath, false)
}

// Test case
testWithVersion('v1.0.0')  // Test regression on older version

Community Best Practices

Based on Katalon’s documentation and testing standards:

  1. Source Control: Keep APK versions in your Git repository (with .gitignore for large files) or use artifact management tools
  2. Version Naming: Use semantic versioning (v1.0.0, v1.1.0, etc.) for easy tracking
  3. Documentation: Maintain a changelog mapping APK versions to test scenarios
  4. Automation: Use CI/CD pipelines to automatically download/install specific APK versions
  5. Device Compatibility: Test on multiple Android API levels (Katalon supports Android 6.0+)

Key Takeaway

For enterprise/production use: Use Katalon’s TestOps Application Repository for secure, version-controlled APK management. For local development and regression testing, maintain APKs in your project with clear version naming and documentation.