java调用main自动执行testng方法一

主方法


import com.com.utlis.createTestngXml;
import org.testng.TestNG;
import java.util.ArrayList;
import java.util.List;

/**
 * @author lw
 * @createTime 2019/3/30 15:35
 * @description testng调试类
 */
public class inittet {
    private static final String ESCAPE_PROPERTY = "org.uncommons.reportng.escape-output";

    public static void main(String[] args) {
        try {
                //执行的类
            createTestngXml.createTestngXml("com.com.javatest.one.domese");
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.setProperty(ESCAPE_PROPERTY, "false");
        List<String> suites = new ArrayList<String>();
        System.out.println(suites);
        suites.add(System.getProperty("user.dir") + "/mytestng.xml");
        TestNG tng = new TestNG();
        tng.setTestSuites(suites);
        tng.run();
    }
}

创建xml方法


import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import java.io.*;
import java.util.ArrayList;
import java.util.List;

/**
 * @author lw
 * @createTime 2019/3/30 16:12
 * @description 自动生成tesgng.xml
 */
public class createTestngXml {

    public static void createTestngXml(String classname) throws Exception {
        Document document = DocumentHelper.createDocument();
        Element root = DocumentHelper.createElement("suite");
        document.setRootElement(root);
        root.addAttribute("name", "automation");
        root.addAttribute("parallel", "Automatically generate xml");
        root.addAttribute("thread-count", String.valueOf("1"));
        Element listeners = root.addElement("listeners");  //子标签
        Element listener1 = listeners.addElement("listener");
        listener1.addAttribute("class-name", "org.uncommons.reportng.HTMLReporter");
        Element listener2 = listeners.addElement("listener");
        listener2.addAttribute("class-name", "org.uncommons.reportng.JUnitXMLReporter");
        Element test = root.addElement("test");
        test.addAttribute("name", "127.0.0.1");
        Element classes = test.addElement("classes");
        Element classNode = classes.addElement("class");
        classNode.addAttribute("name", classname);
        OutputFormat format = new OutputFormat("    ", true);
        XMLWriter xmlWrite2;
        try {
            xmlWrite2 = new XMLWriter(new FileOutputStream("mytestng.xml"), format);
            xmlWrite2.write(document);
        } catch (
                UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (
                FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (
                IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("执行成功!!!");
    }
        }

自定义xml

<?xml version="1.0" encoding="UTF-8"?>

<suite name="automation" parallel="Automatically generate xml" thread-count="1">
    <listeners>
        <listener class-name="org.uncommons.reportng.HTMLReporter"/>
        <listener class-name="org.uncommons.reportng.JUnitXMLReporter"/>
    </listeners>
    <test name="127.0.0.1">
        <classes>
            <class name="com.com.javatest.one.domese"/>
        </classes>
    </test>
</suite>

测试@test

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URL;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import org.testng.annotations.Test;
import java.net.http.HttpResponse;

/**

  • @author lw
  • @createTime 2019/3/30 16:12
  • @description 自动生成tesgng.xml
    */

public class domese {
    @Test
    public void ss11() {
        try {
            var url = new URL("http://www.oracle.com/");
            var conn = url.openConnection();
            var reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            System.out.println(reader);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

         @Test
    public void we() {
        String uri = "http://www.baidu.com";

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(uri))
                .GET()
                .build();

        HttpResponse<String> response = null;
        try {
            response = client.send(request, HttpResponse.BodyHandlers.ofString());
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(response.body());
    }
        }

结果:

原文地址:https://blog.51cto.com/357712148/2371758

时间: 2024-10-05 05:50:12

java调用main自动执行testng方法一的相关文章

Java调用Linux命令执行

调用方式 Java调用linux命令执行的方式有两种,一种是直接调用linux命令,一种是将linux命令写到.sh脚本中,然后调用脚本执行. 详细说明 直接调用:使用java中lang包下面的Runtime类和Process类,其中Runtime类中的Runtime.getRuntime().exec(linux command)方法可以直接执行linux命令,而Process类可以接收Runtime.getRuntime().exec()类的返回值,并提供了waitFor()方法和destr

Java+Selenium——如何处理日历控件——方法一

如果遇到这样的日期控件,直接把当做正常的文本输入框,然后调用sendKeys()方法,直接传一个带格式的日期数据进入就可以. package rjcs; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Set; import org.openqa.selenium.interaction

Spring Boot 启动源码解析系列六:执行启动方法一

1234567891011121314151617181920212223242526272829303132333435363738394041424344 public ConfigurableApplicationContext (String... args) { StopWatch stopWatch = new StopWatch(); // 开始执行,记录开始时间 stopWatch.start(); ConfigurableApplicationContext context =

java 调用grads 自动批量生成图片

将 -lbcx 命令 后面的4个参数(gs文件名.参数1.参数2.参数3) 放在单引号里面就可以执行了.

java 调用命令行执行ruby ruby文件必须放在项目跟目录

import java.io.BufferedReader;import java.io.InputStreamReader; public class CMD_RUBY { private static String exeCmd(String commandStr) { BufferedReader br = null; try { Process p = Runtime.getRuntime().exec(commandStr); br = new BufferedReader(new I

java+selenium——打开多个窗口,并切换窗口——方法一

先来解释下什么是句柄,有时候浏览器的窗口句柄,也叫windows id,英文单词更好理解. 你打开了一个浏览器,你开一个tab,就生成了一个id,这个id直到你关闭这个tab才会消失. 如果你在一个浏览器上打开多个tab,那么就有多个windows id,为什么你关闭其中一个tab,但是不影响其他tab的显示,就是这个id的作用. 本文就是要介绍如何获得浏览器窗体的句柄或者叫编号,为后面的driver实例在多个窗体之间切换做准备. 我们先看看浏览器只开一个tab,也就是只有一个windows句柄

Java误区: 静态代码块,会在类被加载时自动执行?

JAVA静态代码块会在类被加载时自动执行? 很多Java开发者的思想,被这个思想深深的轮奸了n遍,传播这个错误思想的博客,在网上一堆,越来越多的人被轮奸. 如:http://blog.csdn.net/leeyu35/article/details/7755304 那么我们程序来证明这句话是错误的: class MyClass1 { static {//静态块 System.out.println("static block "); } } public class Main { Cl

java testng框架的windows自动化-自动运行testng程序下篇

本文旨在让读者简单了解testng的自动运行 接上文https://www.cnblogs.com/xuezhezlr/p/9213456.html,文章大致把testng中比较特殊的两个xml形式说了一下,读者可以这样认为,ant的那个xml中的代码,因为只是控制了打包和指定testng的xml路径,然后获取执行结果想方法展示,而testng的xml直接控制了运行代码的顺序,包类等参数,直接控制了运行的过程,所以,如果工程主体变动不大,只需要对testng的xml进行改造,从而控制执行的方法,

java调用Linux执行Python爬虫,并将数据存储到elasticsearch--(环境脚本搭建)

java调用Linux执行Python爬虫,并将数据存储到elasticsearch中 一.以下博客代码使用的开发工具及环境如下: 1.idea: 2.jdk:1.8 3.elasticsearch:5.2.0 4.Linux 5.Python 6.maven 二.maven坐标: <!--java连接ulinix脚本架包--> <dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>