Wednesday 24 July 2024

Integrate BrowserStack Automate with Azure Pipelines

 

Integrate BrowserStack Automate with Azure Pipelines

Overview 

Azure Pipelines is a CI/CD platform that helps automate the build, test, and deployment of code projects. It supports a wide range of languages and tools, and provides pre-defined tasks and the ability to create custom tasks and integrations. It is a part of the Azure DevOps suite of tools for managing the development lifecycle of applications.

    Prerequisites 

    Before you can start integration, ensure that:

    Install the BrowserStack Azure DevOps Extension 

    The BrowserStack Azure DevOps Extension eases the process of configuring Azure Pipelines to run tests on BrowserStack. To install the extension follow these steps:

    1. In the Visual Studio Marketplace, click Azure DevOps.
    2. Search for BrowserStack Azure DevOps Extension.
    3. On the BrowserStack Azure DevOps Extension page, click Get it Free.
    4. To sign in to your Azure account, open the Sign in page. Once you’ve signed in, click Select an Azure DevOps organization and choose your organization.
    5. Click Install to add the extension.

    BrowserStack’s extension is now installed in your Azure DevOps organization. This installs the BrowserStack ConfigBrowserStackResults, and BrowserStackStopLocal tasks to the list of available tasks for you to use them in your pipeline.

    Configure BrowserStack in Azure Pipelines 

    For your tests to run on BrowserStack, the Azure Pipeline needs additional information, such as BrowserStack credentials.

    You can create a pipeline using either a YAML editor or a classic editor. Depending on the editor you used to create the pipeline, refer to the steps in the following tabs to integrate BrowserStack in your pipeline.

    1. Open the Azure portal page and click My Azure DevOps Organizations.

    2. On the Azure DevOps Organizations page, click the project where you’ve created a pipeline for your project’s repostory from the list of projects that appear.

    3. In the bottom-left corner of your project’s page click Project settings.

    4. On the Project details page, click Service connections > Create service connection.

    5. In the New service connection section, select BrowserStack from the given list, and click NextSelect BrowserStack

    6. In the New BrowserStack service connection section, enter your BrowserStack Username in the Username field, and then enter Access key in the AccessKey field.

    7. Click Verify to verify your BrowserStack credentials.

    8. After verification succeeds, enter a service connection name in the Service connection name field, such as browserstack-connection, and then click Verify and save. The service connection gets added and you’re redirected to the Service connections page. Service creation in YAML

    9. Click the Click Pipelines option (Pipelines) icon.

    10. On the Pipelines page, select your pipeline.

    11. Click Edit to edit the pipeline.

    12. In the pipeline editor, from the Tasks pane, search for the BrowserStack Config task, and then select it. BrowserStack Config

    13. In the BrowserStack Config section, select the connection, created in Step 8, from BrowserStack service end point

    14. Click Add.

    15. In the pipeline editor, from the Tasks pane, search for the BrowserStack Results task, and then select it.

    16. In the BrowserStack Results section, enter automate in the Enter the product in use field, and then click AddAdd Results task in YAML

    The following image shows the azure-pipelines.yml file with all the BrowserStack tasks configured to run your test on BrowserStack. YML file with BrowserStack tasks added

    Note: Ensure to set the build capability in your test script using the environment variable BROWSERSTACK_BUILD_NAME. The extension will fail to embed test reports in your pipeline if this capability is missing. Check out Edit your test script to call environment variables to learn more.

    You can set additional configuration options, such as enabling verbose logging, for the Local binary in the BrowserStackLocal Options input field. Check out Set Additional Configuration options to learn more.

    Your build pipeline is successfully configured to connect with the BrowserStack cloud for your project.

    Configure BrowserStack Local in Azure Pipelines 

    Use BrowserStack Local Testing to test your web applications hosted on private, development, and internal servers. With the BrowserStack Local Testing binary, you can create a secure, private connection between the BrowserStack your internal servers.

    Configuring BrowserStack Local involves:

    Set variables for BrowserStack Azure DevOps Extension

    The BrowserStack Azure DevOps extension, by default, sets the following environment variables:

    BROWSERSTACK_USERNAME
    BROWSERSTACK_ACCESS_KEY
    BROWSERSTACK_LOCAL
    BROWSERSTACK_LOCAL_IDENTIFIER
    BROWSERSTACK_BUILD_NAME
    

    When you create a service connection, the BROWSERSTACK_USERNAME and the BROWSERSTACK_ACCESS_KEY are automatically added as variables during the configuration step.

    In addition, when you add the BrowserStack Config task in your pipeline, the BROWSERSTACK_LOCAL and BROWSERSTACK_LOCAL_IDENTIFIER environment variables are set automatically by the extension.

    The extension also adds the BROWSERSTACK_BUILD_NAME variable that autogenerates a build name for your test runs.

    Edit your test script to call environment variables

    Edit your test script to add the environment variables for setting capabilities using the following code snippets:

    username = process.env.BROWSERSTACK_USERNAME
    accessKey = process.env.BROWSERSTACK_ACCESS_KEY
    var buildName = process.env.BROWSERSTACK_BUILD_NAME;
    browserstackLocal = process.env.BROWSERSTACK_LOCAL
    browserstackLocalIdentifier = process.env.BROWSERSTACK_LOCAL_IDENTIFIER
      
    var capabilities = {
     "os" : "os x",
     "browser" : "playwright-firefox",
     	"build" : buildName, // CI/CD job name using BROWSERSTACK_BUILD_NAME env variable
     "browserstack.local" : browserstackLocal,
     "browserstack.localIdentifier" : browserstackLocalIdentifier,
     "browserstack.user" : username,
     "browserstack.key" : accessKey
    }
    

    Add task to start BrowserStack Local

    When you add the BrowserStack Config task, you have an option to select BrowserStack Local to run your tests on any developement or staging environment. Based on the editor you used to create your pipeline, refer to the steps in the following tabs:

    1. Navigate to your pipeline and click Edit.

    2. In the Tasks pane, select BrowserStack Config from the tasks list.

    3. Select the service endpoint you created earlier.

    4. Select the BrowserStackLocal checkbox, and then click AddClick BrowserStackLocal Note: You can set additional configuration options, such as enabling verbose logging, for the Local binary in the BrowserStackLocal Options input field. Check out Set Additional Configuration options to learn more.

    5. In the Tasks pane, select BrowserStack Results from the tasks list. YML file with BrowserStack tasks added

    6. In the BrowserStack Results section, enter automate in the Enter the product in use field, and then click AddEnter Automate

    The following image shows the azure-pipelines.yml file with all the BrowserStack tasks and local configured to run your test on BrowserStack.

    YAML with local enabled

    Note: Ensure to set the build capability in your test script using the environment variable BROWSERSTACK_BUILD_NAME. The extension will fail to embed test reports in your pipeline if this capability is missing. Check out Edit your test script to call environment variables to learn more.

    Add task to stop BrowserStack Local

    It is recommended to stop the BrowserStack Local binary after tests have been executed to optimize your resources. Add the BrowserStack Stop Local task in your pipeline using the following steps:

    1. Navigate to your pipeline and click Edit.

    2. In the Tasks pane, search for BrowserStack Stop Local from the tasks list, and then select it. Add BrowserStack Stop Local in YAML

    The following image shows the azure-pipelines.yml file with all the BrowserStack tasks configured to run your local test on BrowserStack. YML file with BrowserStack local tasks added

    Note: If you dont prefer to use BrowserStack extension to start and stop local then you can also use an npm package or use binary to setup and tear down local.

    View Test Reports in Azure Pipelines 

    The BrowserStack Azure Pipelines plugin enables you to embed the test results from BrowserStack into Azure Pipelines.

    With this integration, you can now start testing your web applications and view your test results within Azure Pipelines. The following image shows how the test results appear in Azure Pipelines: BrowserStack test results

    No comments:

    Post a Comment