我有两个测试用例: -
测试案例1: - 在Android应用程序上使用凭据登录并到达主屏幕。
测试案例2: - 当我启动应用程序时,应显示主页而不询问登录屏幕。
问题: - 当我执行appium脚本时,它会启动带有登录屏幕的应用程序并到达主屏幕。但是当我再次使用测试用例2执行脚本时,它会再次从登录屏幕启动。我已经在使用No Reset选项。
我需要它应该从主屏幕活动启动。无论何时我都会在某些活动中得到错误,它应该在同一活动上启动而不是从头开始。
实际上问题是当我运行appium功能时,它从一开始就启动应用程序,而我需要它应该来自现有活动。怎么可能?
有人可以帮我吗?
此致 拉夫
答案 0 :(得分:0)
你能分享一下你的试卷吗?
您是否在代码中的某个地方使用driver.close()
,例如@AfterTest
,如果是,您可以对此进行评论并尝试。
@BeforeTest
public void setup()
{
//your setup logic
}
@Test
public void busiLogic()
{
//business logic
}
@AfterTest
public void tearDown()
{
//dont put driver.close()
}
这是我假设你在testcript代码中关闭驱动程序。请发布您的代码。 Thanks
答案 1 :(得分:0)
当您使用@BeforeTest
和@AfterTest
时,您正在使用@BeforeClass
和@AfterClass
。
他们按照他们对锡的说法行事。如果您在 appiumDriver
中初始化@BeforeTest
,则会在每次测试 之前启动新会话。如果您使用 driver.close()
中的driver.quit()
或AfterTest
关闭/退出会话,则 之后 它将被拆除,不会出现在下一次测试中。
改为使用@BeforeClass
和@AfterClass
。
您可以设置@priority
系统,以确保按特定顺序完成测试。 Documentation here
希望这有帮助,
利安
答案 2 :(得分:0)
请分享您对以下代码的看法:
公共类Test1 {
WebDriver博士;
DesiredCapabilities capabilities;
@Test
public void testapp() throws MalformedURLException, InterruptedException {
File app = new File("D:\\Appium_Automation\\abc.apk");
capabilities= new DesiredCapabilities();
capabilities.setCapability("browserName", "");
capabilities.setCapability("deviceName","samsung-sm_n910g-641dd802");
capabilities.setCapability("platformVersion","5.0.1");
capabilities.setCapability("platformName","Android");
capabilities.setCapability("app",app.getAbsolutePath());
capabilities.setCapability("apppackage","com.sk.test");
capabilities.setCapability("appActivity","com.fp.test.test");
dr = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
dr.manage().timeouts().implicitlyWait(60,TimeUnit.SECONDS);
}
public class Test2 {
@Test
public void method1() throws MalformedURLException, InterruptedException {
//Few line Code
}
公共课Test3 {
@Test
public void method1() throws MalformedURLException, InterruptedException {
//Few line Code
}
第一次,我运行了2个类(Test1和Test2),它完美地完成了套件。脚本状态通过。
第二次或运行第二个套件,我想运行Test3类,因此它需要运行Class“Test1”,但我希望应用程序不应该重新启动,它应该与之前打开的活动一起出现。
请告诉我在第二次运行时应该在Class Test1中进行哪些更改,或者需要对appium settimng进行任何更改。我正在使用“无重置”选项
答案 3 :(得分:0)
capabilities.setCapability("appActivity","com.fp.test.test");
这是因为每次使用此活动启动您的应用程序时,概率就像这是您的应用程序中的第一个活动(登录屏幕),无论何时您请求应用程序,它将打开登录屏幕,同样尝试查找活动,在第一次/登录活动之后,您可以使用此应用'https://play.google.com/store/apps/details?id=com.intelloware.apkinfo&hl=en'