前面一篇文章,大概介绍了这个框架的设计思路和步骤。这篇,开始介绍如何配置依赖包并连接本地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。
连接代码就介绍到这里,目前项目暂时的源码在这里,如果同上面步骤没有实现同样效果,下载源码看看。