IDEA+maven+java+TestNG 通过变量同时运行chrome和ie浏览器

本篇介绍TestNG中的参数的作用,通过引入参数,来实现启动不同浏览器,一般参数需要在tesgng.xml文件里设置。这里要举例的场景是,我需要同时运行ie和谷歌浏览器测试脚本。

1、先创建一个TestCrossBrowser.java文件,输入以下内容

package Test_scipt;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class TestCrossBrowser {
    @Test
    // 这行@Test一定要写,如果不写,表示当前没有需要执行的脚本,会报错:No tests were found
    
    @Parameters("Browser")
    public void startBrowser(String browser){
        if(browser.equalsIgnoreCase("Chrome")){
            System.setProperty("webdriver.chrome.driver","E:\\Java_project\\XTPTest_selenium\\src\\main\\resources\\chromedriver.exe");
            WebDriver driver=new ChromeDriver();
            driver.manage().window().maximize();
            driver.get("https://www.baidu.com");
            driver.quit();
        }
        else if(browser.equalsIgnoreCase("InternetExplorer")){
            System.setProperty("webdriver.ie.driver","E:\\Java_project\\XTPTest_selenium\\src\\main\\resources\\IEDriverServer.exe");
            WebDriver driver=new InternetExplorerDriver();
            driver.manage().window().maximize();
            driver.get("https://blog.csdn.net");
            driver.quit();

        }
    }
    
}

注意上面@Parmeters("Browser"),直接把外部参数Browser通过@Parmaeters注释引入到测试脚本中供方法共享这个变量。

2、创建testng.xml文件并且编辑里面的内容 

创建testng.xml上一篇中讲过了,安装相应的插件-右键create testng xml-编辑testng.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="suite" parallel="tests" thread-count="2">
    <test  name="Test">
        <parameter name="Browser" value="Chrome" />
        <classes>
                <class name="Test_scipt.TestCrossBrowser"/>
        </classes>
    </test>
    <test name="Test1">
        <parameter name="Browser" value="InternetExplorer"/>
        <classes>
            <class name="Test_scipt.TestCrossBrowser"/>
        </classes>
    </test>
</suite>

注意上面两个test的name是不一样的,parameter中name的value和我们代码中的保持一致,class的name是包名.类名

3、选中testng.xml右键,run当前的testn.xml文件

运行结果会展示同时运行ie和chrome

testng中各种标签的含义后面再说吧!

参考博文:https://blog.csdn.net/u011541946/article/details/75109005

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要创建一个 Maven 项目,并添加 TestNG 依赖。在 pom.xml 文件中添加以下依赖: ```xml <dependencies> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.4.0</version> <scope>test</scope> </dependency> </dependencies> ``` 接下来,我们创建一个名为 `Sku` 的 Java 类,用于表示商品 SKU。 ```java public class Sku { private String id; private String name; private double price; public Sku(String id, String name, double price) { this.id = id; this.name = name; this.price = price; } public String getId() { return id; } public String getName() { return name; } public double getPrice() { return price; } } ``` 然后,我们创建一个名为 `SkuDao` 的 Java 类,用于实现 SKU 的增删改查。 ```java import java.util.ArrayList; import java.util.List; public class SkuDao { private List<Sku> skuList; public SkuDao() { skuList = new ArrayList<>(); } public void addSku(Sku sku) { skuList.add(sku); } public void deleteSku(String id) { skuList.removeIf(sku -> sku.getId().equals(id)); } public void updateSku(Sku sku) { for (int i = 0; i < skuList.size(); i++) { if (skuList.get(i).getId().equals(sku.getId())) { skuList.set(i, sku); break; } } } public Sku getSkuById(String id) { for (Sku sku : skuList) { if (sku.getId().equals(id)) { return sku; } } return null; } } ``` 最后,我们创建一个名为 `SkuDaoTest` 的 Java 类,用于测试 `SkuDao` 类的功能。 ```java import org.testng.Assert; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; public class SkuDaoTest { private SkuDao skuDao; @BeforeMethod public void setUp() { skuDao = new SkuDao(); skuDao.addSku(new Sku("001", "iPhone 12", 9999.0)); skuDao.addSku(new Sku("002", "iPad Pro", 7999.0)); } @Test public void testAddSku() { skuDao.addSku(new Sku("003", "AirPods Pro", 1999.0)); Assert.assertEquals(skuDao.getSkuById("003").getName(), "AirPods Pro"); } @Test public void testDeleteSku() { skuDao.deleteSku("001"); Assert.assertNull(skuDao.getSkuById("001")); } @Test public void testUpdateSku() { Sku sku = new Sku("002", "iPad Air", 5999.0); skuDao.updateSku(sku); Assert.assertEquals(skuDao.getSkuById("002").getName(), "iPad Air"); } @Test public void testGetSkuById() { Assert.assertEquals(skuDao.getSkuById("001").getName(), "iPhone 12"); Assert.assertEquals(skuDao.getSkuById("002").getName(), "iPad Pro"); Assert.assertNull(skuDao.getSkuById("003")); } } ``` 在这个测试类中,我们使用 TestNG 提供的断言方法来验证每个方法的功能是否正确。 以上是一个简单的关于 SKU 的增删改查的实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值