2018年6月23日星期六

testng优先和排序

大家好,在这篇文章中,我们将看到如何在Testng中的测试用例以及如何根据我们的要求进行排序。如果创建一个测试类并添加多个测试用例并运行它,则随机选择每个时间测试案例执行序列。
使用Testng注释@Test和参数“优先级”我们可以定义执行测试用例的序列和优先级。让我们考虑以下示例,如果您在多次提供以下给出的测试类,则可以看到每次执行序列/流量都不同,因此定义了我们用户Testng注释优先级的固定执行流程。

视频教程 -



package test;
import org.testng.annotations.Test;
 
public class TesNGSequencing {
 
 
 
  @测试
 
  public void One() {
 
      System.out.println("Test Case number One");
 
  }
 
  @测试
 
  public void Two() {
 
   System.out.println("Test Case number Two");
 
  }
 
  @测试
 
  public void Three() {
 
   System.out.println("Test Case number Three");
 
  }
 
  @测试
 
  public void Four() {
 
   System.out.println("Test Case number Four");
 
  }
 
}

下面给出的是使用优先级注释的示例。当您运行以下测试类时,每次执行流程都是常量的,并且从具有0优先级的测试用例开始。


package test;
import org.testng.annotations.Test;
 
public class TesNGSequencing {
 
 
 
  @测试(priority=0)
 
  public void One() {
 
      System.out.println("Test Case number One");
 
  }
 
  @测试(priority=1)
 
  public void Two() {
 
   System.out.println("Test Case number Two");
 
  }
 
  @测试(priority=2)
 
  public void Three() {
 
   System.out.println("Test Case number Three");
 
  }
 
  @测试(priority=3)
 
  public void Four() {
 
   System.out.println("Test Case number Four");
 
  }
 
}

跳过测试 -


如果您遇到了有要求跳过一些测试的情况,那么在这种情况下,您可以使用@Test注释和启用的参数进行。




package test;
import org.testng.annotations.Test;
 
public class TesNGSequencing {
 
 
 
  @测试(priority=0, enabled=false)
 
  public void One() {
 
      System.out.println("Test Case number One");
 
  }
 
  @测试(priority=1)
 
  public void Two() {
 
   System.out.println("Test Case number Two");
 
  }
 
  @测试(priority=2)
 
  public void Three() {
 
   System.out.println("Test Case number Three");
 
  }
 
  @测试(priority=3)
 
  public void Four() {
 
   System.out.println("Test Case number Four");
 
  }
 
}

2018年6月22日星期五

Testng断言和硬断言与软断言之间的差异

大家好,在这篇文章中,我们将涵盖Testng的非常重要的特征,这是Testng断言。为什么这很重要?因为没有考虑完成测试案例,除非我们已将实际值与预期值置fisher.Assertions有助于我们通过或失败验证测试用例。
Testng Hard Assert有三种类型的断言,软尖端。让我们详细了解所有这些。

视频教程


什么是断言以及它是如何运作的?


在下面考虑我们推出Google.com的示例,并断言标题应该等于谷歌。这是断言的最简单示例,这是具有断言的测试用例。

@测试
 public void testCaseVerifyHomePage() {
  System.setProperty("webdriver.chrome.driver", "C:\\Softwares\\chromedriver_win32\\chromedriver.exe");
  WebDriver driver=new ChromeDriver();
  driver.navigate().to("http://google.com");
  Assert.assertequals.("Gooooogle", driver.getTitle());
 }

现在,如果您更改代码以将标题与预期值置为“涂鸦”,那么它将抛出预期的例外 - 涂鸦但找到 - Google。

@测试
 public void testCaseVerifyHomePage() {
  System.setProperty("webdriver.chrome.driver", "C:\\Softwares\\chromedriver_win32\\chromedriver.exe");
  WebDriver driver=new ChromeDriver();
  driver.navigate().to("http://google.com");
  Assert.assertequals.("Doodle", driver.getTitle());
 }
通过这种方式,断言有助于我们确保测试案例已通过或失败,我们可以使用这些类型的断言捕获错误。
除了断言外,还有各种类型的断言,如下所述。

常用的断言 -


assertequal.(String实际,String预期): - 它需要两个字符串参数并检查两者是否相等,如果不是它将失败测试。

assertequal.(String实际,String预期,字符串消息): - 它需要三个字符串参数并检查两者是否相等,如果不是它将失败测试并抛出我们提供的消息。

assertequals.(布尔实际,布尔预期): - 需要两个布尔参数并检查两者是否相等,如果不是它将失败测试。

assertequals.(java.util.collection实际,java.util.colection预期,java.lang.string消息): - 抓住两个集合对象并验证两个集合包含相同的元素,并具有相同的元素。如果不是它将通过给定消息进行测试。

断言(条件): - 需要一个布尔参数并检查一个条件为true,如果不是,则抛出assertionError。

断言(条件,消息): - 它需要一个布尔参数和字符串消息。它断言条件是真的。如果不是,则抛出具有给定消息的断言错误。

assertfalse.(条件): - 需要一个布尔参数并检查一个条件为false,如果不是,则抛出一个assertionError。

assertfalse.(条件,消息): - 它需要一个布尔参数和字符串消息。它断言条件是假的。如果不是,则抛出具有给定消息的断言错误。

硬断言 -   


硬断言是一种Testng Assetion,如果Assert语句失败并转到下一个TestCase,并且如果当前测试用例中存在assert语句后,它不会执行该语句,则立即抛出异常。它不会执行该语句。我们之前看到的Google示例也是硬断言的一个例子。您可以尝试添加代码 断言声明后,它不会被执行。
在下面的示例中,首先assert语句执行执行后,未执行测试用例执行停止和进一步的语句。


@测试
 public void test1(){
   
   Assert.断言(5<1);
   System.out.println(Assertion Failed);
   Assert.assertfalse.(1<5);
   System.out.println(Assertion Failed);
   Assert.assertequals.(Passed, Failed);
   System.out.println(Assertion Failed);
 }

软断言 -  

为了处理硬断言的缺点,Testng提供的定制错误处理程序称为软断言。软断言是当断言失败时不会抛出异常的断言类型,并在断言声明之后继续下一步。当我们的测试需要执行多个断言时,通常使用这通常,并且用户希望在失败/跳过测试之前要执行的所有断言/代码。


@测试
 public void test1(){
   SoftAssert sa= new SoftAssert();
   sa.断言(5<1);
   System.out.println(Assertion Failed);
   sa.assertfalse.(1<5);
   System.out.println(Assertion Failed);
   sa.assertequals.(Passed, “Failed);
   System.out.println(Assertion Failed); 
                        sa.assertAll()
 }


2018年6月14日星期四

testng分组并取决于

在我们以前的帖子中,我们了解了Testng注释。在此帖子中,我们将看到我们如何使用testng注释来指定测试用例并指定依赖测试用例。

团体‘是Testng的一个注释可以 用于执行多个测试作为组。让’说你有一百个 类设备的测试和IT十种笔记本电脑,十种方法 笔记本等。您可能想运行所有笔记本测试 一起批次。你希望所有人都在一个测试套件中。和 分组的帮助您可以有效地解决这种情况。

怎么做…
1)为笔记本电脑创建两种方法,两种用于笔记本电脑和笔记本电脑和笔记本电脑的方法。
2)使用使用分别组 (groups = { ” Group Name” })

视频教程 -

 

import org.testng.annotations.Test;
 
public class TestGrouping {
 
  @测试 (groups = { "Laptops" })
 
  public void laptop1() {
 
   System.out.println("Batch Laptops- Test Laptops1");
 
  }
 
  @测试 (groups = { "Laptops" })
 
  public void laptop2() {
 
   System.out.println("Batch Laptops- Test Laptops 2");
 
  }
 
  @测试 (groups = { "Notebooks" })
 
  public void notebook1() {
 
   System.out.println("Batch Notebooks- Test Notebooks 1");
 
  }
 
  @测试 (groups = { "Notebooks" })
 
  public void notebook2() {
 
   System.out.println("Batch Notebooks- Test Notebooks2");
 
  }
 
  @测试 (groups = { "Laptops", "Touch Screen Laptops" })
 
  public void youchScreenlaptop() {
 
   System.out.println("Batch Touch Screen Laptops- Test Touch Screen Laptops1");
 
  }
 
}

将以下代码添加到testng.xml-



<suite name="Suite">
 
    <test name="Practice Grouping">
 
        <groups>
 
     <run>
 
  <include name="Laptops" />
 
     </run>
 
 </groups>
 
 <classes>
 
     <class name="PackageName.TestGrouping" />
 
 </classes>
 
    </test>
 
</suite>

运行testng,xml - > right click -> Run as -> TestNG Suit.

Dependenct Test -

您可能需要在一个测试用例中调用方法 特定顺序或者您希望在其中分享一些数据和状态 方法。 Testng支持这种依赖性。
testng允许您指定具有下面给出的两个选项的依赖项。
  • 使用属性 depedsonmethods. 在@Test注释中
  • 使用属性 dependsongroups. 在@Test注释中。

import org.testng.annotations.Test;
 
public class Dependent {
 
  @测试 (depedsonmethods. = { "OpenBrowser" })
 
  public void SignIn() {
 
   System.out.println("This will execute SignIn");
 
  }
 
  @测试
 
  public void OpenBrowser() {
 
   System.out.println("This will execute Open Browser");
 
  }
 
  @测试 (depedsonmethods. = { "SignIn" })
 
  public void SignOut() {
 
   System.out.println("This will execute Log Out");
 
  }

如果在下面的评论部分中有任何反馈和问题邮寄。

什么是testng注释

在这篇文章中的大家嗨,我们将学习Testng注释的基础知识。在我们之前的教程中,我们已经看到了Textng的介绍和设置。现在让我们了解什么是testng注释以及如何使用testng注释来定义适当的测试套装执行flo

testng注释

让我们理解下面给出的简单示例,它将帮助您了解注释如何有助于定义Flow.in Testng注释 @测试 这里是最小的注释。 @方法 将首先执行, 在执行之前和之后 @测试。以同样的方式 @班级 will be 在执行之前和之后首先执行 @方法 等等。

视频教程 -

 

请在下面的评论部分中尝试此外并发布您的反馈和问题。


import org.testng.annotations.AfterClass;
 
import org.testng.annotations.AfterMethod;
 
import org.testng.annotations.AfterSuite;
 
import org.testng.annotations.AfterTest;
 
import org.testng.annotations.BeforeClass;
 
import org.testng.annotations.BeforeMethod;
 
import org.testng.annotations.BeforeSuite;
 
import org.testng.annotations.BeforeTest;
 
import org.testng.annotations.Test;
 
public class Sequencing { 
 
               @BeforeSuite
 
  public void beforeSuite() {
 
   System.out.println("This will execute before the Test Suite");
 
  }
  
 
                @BeforeClass
 
  public void beforeClass() {
 
   System.out.println("This will execute before the Class");
 
  } 
               @BeforeTest
 
  public void beforeTest() {
 
   System.out.println("This will execute before the Test");
 
  }
 
                @BeforeMethod
 
  public void beforeMethod() {
 
   System.out.println("This will execute before every Method");
 
  } @测试
 
  public void testCase1() {
 
   System.out.println("This is the Test Case 1");
 
  }
 
  @测试
 
  public void testCase2() {
 
   System.out.println("This is the Test Case 2");
 
  }
 
  
 
  @AfterMethod
 
  public void afterMethod() {
 
   System.out.println("This will execute after every Method");
 
  }
 
  
 
  @AfterClass
 
  public void afterClass() {
 
   System.out.println("This will execute after the Class");
 
  }
 
  
 
  @AfterTest
 
  public void afterTest() {
 
   System.out.println("This will execute after the Test");
 
  }
 
  
  @AfterSuite
 
  public void afterSuite() {
 
   System.out.println("This will execute after the Test Suite");
 
  }
 
 }

2018年6月9日星期六

Eclipse中Testng和Testng设置的简介

Testng是下一代测试框架 在JUNIT和NUNIT的行中开发,但它有一些新功能,使其更加强大,更容易使用。 Testng旨在涵盖各种测试:单位,功能,端到端,集成等,并且它需要JDK 5或更高。


使用testng的专业
有许多好处,但从硒/安抚的角度来看,Testng的主要优点是:
  1. 它提供了生产的能力 HTML报告 测试诉讼执行。
  2. 注释 使测试人员生活容易并定义测试执行流程。
  3. 测试用例可以 分组& Prioritized 更轻松地使用Testng注释。
  4. 平行线 测试可以同时在多个浏览器上运行相同的测试。
  5. 生成 日志 这对于调试目的有用。
  6. 数据 参数化 是可能的。

视频教程 -


 如何在Eclipse中配置Testng -

1.打开Eclipse。
2.导航到Eclipse Marketplace。

3.搜索testng。


4.单击“安装”。
5.完成。


2018年6月4日星期一

使用Java代码启动Appium Server的最简单方法

当我们建立自动化框架时,将结束到最终自动化非常重要,包括启动和停止Appium Server。在这篇文章中牢记这一点,我将分享最简单和最快的方式来安装Appium Server并开始&使用简单的Java代码停止Appium Server。
这是使用Java代码以编程方式启动Appium Server的非常简单且简单的方法。在我们的 以前的教程 我们已经看到了如何使用Java代码启动Appium Server Appiumdriverlocalservice. 班级。但在本教程中,我们将看到非常简单且快速地安装Appium Server并使用简单的Java代码启动它。


Step 1 > Install Node Js from  HERE
 
Step 2 > Open Node Js Command Prompt as shown below.

Step 3 > Execute command npm install -g appium
 
Step 4 > Verify Appium is Installed Successfully by executing command  appium -v
 
Step 5 > Start appium server using command appium -a 127.0.0.1 -p 4723
 
Step 6 > Do CTRL + C to stop ther server

Below is the Java Code to Start and Stop Appium Server Programaticall. In the code we
are executing the command using java to start and stop the server.
Do try this out and post your feedback, Suggestion and questions in comment section 
below.



import java.io.IOException;

/**
 * Appium Manager - this class contains method to start and stops appium server  
 */
public class 安排Manager {

 public void startServer() {
  Runtime runtime = Runtime.getRuntime();
  try {
   runtime.exec("cmd.exe /c start cmd.exe /k \"appium -a 127.0.0.1 -p 4725 --session-override -dc \"{\"\"noReset\"\": \"\"false\"\"}\"\"");
   Thread.sleep(10000);
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 public void stopServer() {
  Runtime runtime = Runtime.getRuntime();
  try {
   runtime.exec("taskkill /F /IM node.exe");
   runtime.exec("taskkill /F /IM cmd.exe");
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}