dyn365-ce-devops icon indicating copy to clipboard operation
dyn365-ce-devops copied to clipboard

Add automated ui testing

Open devkeydet opened this issue 6 years ago • 3 comments

https://github.com/microsoft/easyrepro

devkeydet avatar Oct 13 '17 22:10 devkeydet

We already have automated ui testing in the reference app: https://github.com/devkeydet/CrmAsyncRequestResponseSampleV2/tree/master/UIAutomationTests

However, there is a known issue with https://github.com/Microsoft/EasyRepro/ when executing a headless test with the phantomjs driver: https://github.com/devkeydet/CrmAsyncRequestResponseSampleV2/issues/23

See: https://github.com/Microsoft/EasyRepro/issues/47

Once the issue is resolved, we'll update one of the release builds to show how to run the ui automation test.

devkeydet avatar Nov 20 '17 12:11 devkeydet

Two options: -Spin up our own agent with a browser installed and use the browser driver (adds complexity) -Wait until phantomjs is working

devkeydet avatar Nov 20 '17 14:11 devkeydet

@devkeydet I believe there's another working option you can use today.

Microsoft.Dynamics365.UIAutomation.Browser.BrowserOptions now supports headless for Chrome, which works in a hosted build agent:

public static class TestSettings
{
    public static BrowserOptions Options { get { return _options; } }

    private static BrowserOptions _options = new BrowserOptions
    {
        BrowserType = BrowserType.Chrome,
        PrivateMode = true,
        FireEvents = true,
        Headless = true
    };
}

Then in your build definition, just install Chrome before running your UI tests by running a PowerShell script task:

$Path = $env:TEMP;
$Installer = "chrome_installer.exe";
Invoke-WebRequest "http://dl.google.com/chrome/install/375.126/chrome_installer.exe" -OutFile $Path\$Installer;
Start-Process -FilePath $Path\$Installer -Args "/silent /install" -Verb RunAs -Wait;
Remove-Item $Path\$Installer

camelCaseDave avatar Mar 01 '18 11:03 camelCaseDave