Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View nikolay-advolodkin's full-sized avatar

Nikolay nikolay-advolodkin

  • Sauce Labs
View GitHub Profile
Test Name: SimpleTest
Test FullName: AppiumOnDotNetFramework.Rdc.SimpleTest
Test Source: C:\Source\SauceLabs\saucelabs-training\demo-csharp\demo-csharp\SauceExamples\AppiumOnDotNetFramework\Rdc.cs : line 20
Test Outcome: Failed
Test Duration: 0:00:39.0009266
Result StackTrace:
at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
at OpenQA.Selenium.Appium.AppiumDriver`1..ctor(Uri remoteAddress, ICapabilities appiumOptions)
@nikolay-advolodkin
nikolay-advolodkin / SeleniumAutomation.yml
Last active October 26, 2018 17:54
YAML file for Selenium automation in Azure DevOps Pipelines
resources:
- repo: self
queue:
name: Hosted VS2017
demands:
- msbuild
- visualstudio
- vstest
steps:
@nikolay-advolodkin
nikolay-advolodkin / 2SCTunnels.ps1
Last active October 15, 2018 17:55
Running 2 sauce connect tunnels on a single VM for RDC on Windows
#Start the 1st tunnel
.\bin\sc.exe -i NikolaysTunnel2 -u nikolay-a -k CD7874C45DF24FDF -x h
ttps://us1.api.testobject.com/sc/rest/v1
#Start the 2nd tunnel and make sure that you specify the pidfile, logfile, and new port.
.\bin\sc.exe -i NikolaysTunnel2 -u nikolay-a -k CD7874C45DF24FDF -x h
ttps://us1.api.testobject.com/sc/rest/v1 --pidfile .\sc2.pid --logfile .\sc2.log -P 4446
[Test]
public void JITData()
{
//we need a new test user so we create one
var amazonAPI = new AmazonAPI();
var testUser = amazonAPI.CreateUser("test@email.com","Test12345*")
new AmazonLoginPage(Driver).Login(testUser).Should().BeTrue();
//we clean up after
@AfterMethod
public void tearDown(ITestResult result) throws Exception {
((JavascriptExecutor) webDriver.get()).
executeScript("sauce:job-result=" + (result.isSuccess() ? "passed" : "failed"));
webDriver.get().quit();
//todo all other logic that you want to perform here should come after the 2 calls at the top
}
Logger.Info(String.Format(Constants.logMsgStartFormat, TestContext.CurrentContext.Test.Name, DateTime.UtcNow));
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 |
SecurityProtocolType.Tls11 |
SecurityProtocolType.Tls |
SecurityProtocolType.Ssl3;
DesiredCapabilities capabilities = new DesiredCapabilities();
//capabilities.SetCapability("device", TestPlatform);
capabilities.SetCapability("platformName", TestPlatform);
//capabilities.SetCapability("deviceOrientation", "portrait");
capabilities.SetCapability("platformVersion", TestPlatformVersion);
@nikolay-advolodkin
nikolay-advolodkin / Dialogs.cs
Created October 4, 2018 20:49
Handling selenium dialog boxes
var popup = Driver.SwitchTo().Alert();
popup.Accept();
@nikolay-advolodkin
nikolay-advolodkin / setSauceEnvVariables.ps1
Created September 23, 2018 21:29
Set sauce environment variables from .ps1 file
Param(
[string]$sauceUserName,
[string]$sauceAccessKey
)
Write-Host "sauce.userName that was passed in from Azure DevOps=>$sauceUserName"
Write-Host "sauce.accessKey that was passed in from Azure DevOps=>$sauceAccessKey"
[Environment]::SetEnvironmentVariable("SAUCE_USERNAME", "$sauceUserName", "User")
[Environment]::SetEnvironmentVariable("SAUCE_ACCESS_KEY", "$sauceAccessKey)", "User")
//Must use Nunit
//Must update AssemblyInfo.cs to have this:
//[assembly: Parallelizable(ParallelScope.Fixtures)]
//[assembly: LevelOfParallelism(10)] [assembly: LevelOfParallelism(100)]
[TestFixture]
[Parallelizable]
class ParallelTestsWithBestPractices
{
[Test]
@nikolay-advolodkin
nikolay-advolodkin / ConfiguringChromeOptions.cs
Created August 24, 2018 20:56
How to set browerVersion and platformName for ChromeOptions
ChromeOptions options = new ChromeOptions();
options.UseSpecCompliantProtocol = true;
options.BrowserVersion = "latest";
options.PlatformName = "Windows 10";
Driver = new RemoteWebDriver(new Uri("http://ondemand.saucelabs.com:80/wd/hub"), options.ToCapabilities(),
TimeSpan.FromSeconds(600));