Wednesday, April 22, 2020

Android Simulator vs Emulator :

https://medium.com/@sarahelson81/difference-between-emulator-vs-simulator-for-mobile-testing-lambdatest-1bafd83fdd85


Simulation (Partial Implementation of Original Device) : Imitation of only software part which is  developed for Mobile in System. Ex: Any app

Emulator(Complete Implementation of Original Device) : Imitation of Complete Mobile (all hardware, firmware  & software components) in the system. Here it will take RAM, CPU also into consideration.

Appium- Desired capabilities to Change Language : Only in Simulator and Emulator : No Real Device

It does not supported for Real Devices per official Appium docs

https://stackoverflow.com/questions/49449221/changing-language-via-appium-capabilities-on-android-api-23

https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md

Appium Desktop Inspector: Chrome Browser

https://stackoverflow.com/questions/58696488/how-to-resolve-cannot-call-non-w3c-standard-command-while-in-w3c-mode-in-case
{
  "deviceName": "vivo 1920",
  "udid": "575b6cf1",
  "platformName": "Android",
  "platformVersion": "9",
  "chromedriverExecutableDir": "D:\\picx\\81",
  "appActivity": "com.google.android.apps.chrome.Main",
  "appPackage": "com.android.chrome"
}


Java code
package test1;
import org.testng.annotations.Test;

import com.google.common.collect.ImmutableMap;

import java.net.URL;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.remote.MobileCapabilityType;


public class ChromeExample {

 //Any of the below code works fine
 //static AppiumDriver<MobileElement> appDriver; 
 static WebDriver appDriver;
  
 @Test
 public static void OpenChromeBrowser() throws Exception {    
     
  DesiredCapabilities cap = new DesiredCapabilities();
  cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
  cap.setCapability(MobileCapabilityType.PLATFORM_VERSION, "9");  
  cap.setCapability(MobileCapabilityType.DEVICE_NAME, "vivo 1920");
  cap.setCapability(MobileCapabilityType.UDID, "575b6cf1");
  cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "60");
  cap.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");
  cap.setCapability("chromedriverExecutableDir", "D:\\picx\\81");
  cap.setCapability("appium:chromeOptions", ImmutableMap.of("w3c", false));
        
  URL url = new URL("http://127.0.0.1:4723/wd/hub");  
  appDriver = new AppiumDriver<MobileElement>(url,cap);  
  System.out.print("Opened Chrome Browser");
  
  appDriver.get("https://www.google.com");  
  WebElement elem = appDriver.findElement(By.name("q"));
  //WebElement elem1 = appDriver.findElement(By.name("q"));  this code also works fine
  elem.sendKeys("learn");
  elem.sendKeys(Keys.ENTER);    
 }

}

JMeter Simple Controller

  Simple Controller is just a  container  for user request.