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