Java+Testlink实现接口自动化测试-3-连接TestLink和测试

      前面一篇文章,大概介绍了这个框架的设计思路和步骤。这篇,开始介绍如何配置依赖包并连接本地Testlink环境,并做一些必要的API练习操作

1.Maven pom添加testlinkjava client 依赖

百度打开,搜索testlink java client api maven这样关键字。

 

点击第一个链接,拷贝一下红框内容到项目的pom.xml文件

拷贝之后按下ctrl+s之后,自动更新依赖包到你当前环境。

 

2.测试连接testlink

       添加完依赖包之后,我们第一个要学习的API就是如何连接上本地testlink环境。我在scr/test/java下新建一个com.testlink.tests包,这个包专门用来我写有关于testlink API的编程测试练习。在这个新包下新建一个ConnectTest.java的类文件,代码内容如下。

package com.testlink.tests;

import java.net.MalformedURLException;
import java.net.URL;

import org.testng.annotations.Test;

import br.eti.kinoshita.testlinkjavaapi.TestLinkAPI;

public class ConnectTest {
	
	
	@Test
	public void connectTestlink() throws MalformedURLException {
		//api访问的url是固定格式,前面host部分换成你自己的就可以
		//devKey就是第一篇文章介绍的用户下点击new一个access token
		String testlink_Url = "http://localhost/testlink/lib/api/xmlrpc/v1/xmlrpc.php";
		String devKey = "e078360962c574959d0c1022ac461a27";
		
		//将字符串的url转换成URL对象
		URL testlinkURL = new URL(testlink_Url);
		//调用TestLinkAPI构造方法,这两个参数就是上面的url和devKey
		//api是一个TestLinkAPI对象,这个对象是我们操作testlink的核心部分
		//接下来用到的所有API都是这个api发起调用的
		TestLinkAPI api = new TestLinkAPI(testlinkURL,devKey);
		System.out.println(api.ping());
	}

}

      注意先观察下我写的注释,简单了解一下。在运行这个测试代码之前,记得把你本地xampp软件打开,启动三个服务,确保你能够浏览器登录打开testlink,你再运行这个代码,如果运行之后输出hello,说明成功连接到本地testlink环境,api.ping()是原作者写的一个测试连接的方法。


3.封装方法和提取成配置文件

       上面的代码证明了我们实现了Java连接testlink环境,打印输出hello!就是一个连接成功的响应内容。这里,我们思考一下,当前我们这么写代码好不好。当然,当前我们只写了测试代码,所以,我们需要把连接Testlink这个功能进行封装到一个类里,而且上面出现的url和devkey我们还是很有必要提取到配置文件。因为,你这个框架不知道谁会用,不同用户有不同的devkey。

3.1 配置文件

       由于之前,我们写接口封装RestClient的时候写了一个配置文件,这次我还是继续用这个文件,把url和access token写入到配置文件。

3.2 新建一个封装类方法文件

      我在src/main/java下的com.qa.util下新建一个TestlinkUtil.java文件,这个文件全部封装一些常见的testlink操作方法,例如连接testlink,获取测试套件,获取测试用例和获取用例步骤等等。当前我把连接的方法抽取出来成方法,放这个类中。

package com.qa.util;

import java.net.MalformedURLException;
import java.net.URL;
import com.qa.base.TestBase;
import br.eti.kinoshita.testlinkjavaapi.TestLinkAPI;


public class TestlinkUtil {
	
	/**
	 * 连接testlink方法
	 */
	public static TestLinkAPI connect() {
		
		TestBase base = new TestBase();
		
		String url = base.prop.getProperty("TestLinkUrl");
	    String devKey = base.prop.getProperty("DEVKEY");
	    TestLinkAPI api = null;
	     
	    URL testlinkURL = null;
	     
	    try {
	            testlinkURL = new URL(url);
	    } catch ( MalformedURLException mue )   {
	            mue.printStackTrace( System.err );
	            System.exit(-1);
	    }
	     
	    try {
	    	
	           api = new TestLinkAPI(testlinkURL, devKey);
	           
	    } catch( Exception te) {
	            te.printStackTrace( System.err );
	            System.exit(-1);
	    }
	     
	    System.out.println(api.ping());
		return api;
	}
	
}

下面,我创建一个测试类来测试这个封装的方法好不好用,一行代码搞定。

package com.testlink.tests;

import org.testng.annotations.Test;

import com.qa.util.TestlinkUtil;

public class ConnectTest2 {
    

    @Test
    public void testConnect() {
        
        TestlinkUtil.connect();
        
    }

}

      运行,输出hello!和打印一个log内容到日志文件(“正在读取配置文件...”)。接下来,我修改下测试代码,添加一个打印语句,主要把testlink的基本信息给打印出来,顺便熟悉下几个API。在运行下面代码之前,你需要去testlink上至少创建一个project,一个test plan,一个testsuite。如果不知道如何创建这些,那么你不适合看这个系列文章,建议先玩会了testlink系统再来看这些自动化的东西。

package com.testlink.tests;

import org.testng.annotations.Test;

import com.qa.util.TestlinkUtil;

import br.eti.kinoshita.testlinkjavaapi.TestLinkAPI;

public class ConnectTest2 {
	
	TestLinkAPI api;
	
	@Test
	public void testConnect() {
		//拿到testlinkapi对象
		api = TestlinkUtil.connect();
		//得到当前testlink下所有的project,返回一个project数组对象
		System.out.println(api.getProjects()[0].getName());
		//我当前系统就一个project,所以我根据索引0来确定第一个project来查找testplan
		System.out.println(api.getProjectTestPlans(api.getProjects()[0].getId())[0].getName());
	}

}

运行结果:

2018-06-01 23:44:06 882 INFO  TestBase:28 - 正在读取配置文件...
Hello!
API_Automation
PlanA
PASSED: testConnect

      打印的项目名称和测试计划名称,和我当前testlink系统是相符的,打开testlink右上角,可以看到project和对应的plan。


      连接代码就介绍到这里,目前项目暂时的源码在这里,如果同上面步骤没有实现同样效果,下载源码看看。

猜你喜欢

转载自blog.csdn.net/u011541946/article/details/80531781