上篇文字介绍了如何利用正交验证法来实现测试用例的设计。本篇文章将针对上篇文章介绍代码的实现。以授权用例一的Case4为例子。
首先需要准备测试数据,本文使用的是DBUNIT。首先准备xml文件如下:
<SIP_API API_ID= “elbert_api00204″ API_NAME =”alitest.ali-54-test204” ISP_ID = “elbert_isp001”
CONTROL_LEVEL = “1” API_URL = “http://apitest.alisoft.com:8080/isp-test/login” REQUIRE_TOKEN_TYPE =”0″
REQUIRE_TIMEOUT = “1000” STATUS = “0” API_TEST_URL =”http://apitest.alisoft.com:8080/isp-test/login”
FREQUENCY_VALVE = “6” API_TYPE =”0″
/>
<APP APP_ID=”test_app059″ app_name=”zcappname059″ isv_id=”001″
app_no=”test_app059″ APP_SECRET=”secret_app003″ LEVEL_ID=”alitest_level7″/>
<App_Profile APP_ID= “test_app059″ APP_NO=”test_app059″ App_Name=”测试SIP59″ CATEGORY_ID =”elber002”
ISV_ID=”4082604″ Status =”0″ SUBSCRIBED_COUNT=”0″ AUTO_SIGN_ON_URL=”http://www.sina.com.cn”
SERVICE_SCOPE = “1” GMT_CREATE =”2008-2-19 13:28:50″ GMT_MODIFIED = “2008-2-19 13:28:50”
CREATOR = “1” MODIFIER =”1″ IS_DELETED =”n” DESCRIPTION=”测试部专用” STANDARD_PRICE=”基本价12″
GMT_SERVICE_END=”2009-12-19 13:28:50″ PRICE_MODE=”m” PRICE_URL=”http://mall.alisoft.com/apps/shopwindow/appSubscibeAction!showSubscAppModel.jspa”
PRICE_CALC_CLASS=”modelPriceService” LICENCE_NUM=”100″
/>
<SIP_APP_LEVEL LEVEL_ID=”alitest_level7″ LEVEL_NAME=”阿里软件测试级7″ DEFAULT_ACCESS_FREQUENCY=”3″ DAY_ACCESS_COUNT=”0″ API_GROUPS=”alitest_group3,alitest_group4″
LEVEL_DESC=”阿里软件接口测试6″ GMT_CREATE=”2009-01-10 13:28:50″ GMT_MODIFIED=”2009-01-10 13:28:50″
/>
<!– API_GROUP_ID API_GROUP_NAME INCLUDE_APINAMES EXCLUDE_APINAMES INCLUDE_ISPS API_GROUP_DESC GMT_CREATE GMT_MODIFIED
alitest_group1 阿里软件测试组一 elbert_isp001,elbert_isp002,elbert_isp003 阿里软件5.3之前API集合 2009-1-10 2009-1-10
–>
CONTROL_LEVEL = “1” API_URL = “http://apitest.alisoft.com:8080/isp-test/login” REQUIRE_TOKEN_TYPE =”0″
REQUIRE_TIMEOUT = “1000” STATUS = “0” API_TEST_URL =”http://apitest.alisoft.com:8080/isp-test/login”
FREQUENCY_VALVE = “6” API_TYPE =”0″
/>
<APP APP_ID=”test_app059″ app_name=”zcappname059″ isv_id=”001″
app_no=”test_app059″ APP_SECRET=”secret_app003″ LEVEL_ID=”alitest_level7″/>
<App_Profile APP_ID= “test_app059″ APP_NO=”test_app059″ App_Name=”测试SIP59″ CATEGORY_ID =”elber002”
ISV_ID=”4082604″ Status =”0″ SUBSCRIBED_COUNT=”0″ AUTO_SIGN_ON_URL=”http://www.sina.com.cn”
SERVICE_SCOPE = “1” GMT_CREATE =”2008-2-19 13:28:50″ GMT_MODIFIED = “2008-2-19 13:28:50”
CREATOR = “1” MODIFIER =”1″ IS_DELETED =”n” DESCRIPTION=”测试部专用” STANDARD_PRICE=”基本价12″
GMT_SERVICE_END=”2009-12-19 13:28:50″ PRICE_MODE=”m” PRICE_URL=”http://mall.alisoft.com/apps/shopwindow/appSubscibeAction!showSubscAppModel.jspa”
PRICE_CALC_CLASS=”modelPriceService” LICENCE_NUM=”100″
/>
<SIP_APP_LEVEL LEVEL_ID=”alitest_level7″ LEVEL_NAME=”阿里软件测试级7″ DEFAULT_ACCESS_FREQUENCY=”3″ DAY_ACCESS_COUNT=”0″ API_GROUPS=”alitest_group3,alitest_group4″
LEVEL_DESC=”阿里软件接口测试6″ GMT_CREATE=”2009-01-10 13:28:50″ GMT_MODIFIED=”2009-01-10 13:28:50″
/>
<!– API_GROUP_ID API_GROUP_NAME INCLUDE_APINAMES EXCLUDE_APINAMES INCLUDE_ISPS API_GROUP_DESC GMT_CREATE GMT_MODIFIED
alitest_group1 阿里软件测试组一 elbert_isp001,elbert_isp002,elbert_isp003 阿里软件5.3之前API集合 2009-1-10 2009-1-10
–>
<SIP_API_GROUP API_GROUP_ID=”alitest_group3″ API_GROUP_NAME=”阿里软件测试组二” INCLUDE_APINAMES=”” EXCLUDE_APINAMES=””
INCLUDE_ISPS=”elbert_isp002,elbert_isp003″ API_GROUP_DESC=”阿里软件5.4API集合1″ GMT_CREATE=”2009-1-11 01:01:01″ GMT_MODIFIED=”2009-1-11 01:01:01″
/>
<SIP_API_GROUP API_GROUP_ID=”alitest_group4″ API_GROUP_NAME=”阿里软件测试组二” INCLUDE_APINAMES=”” EXCLUDE_APINAMES=””
INCLUDE_ISPS=”elbert_isp001″ API_GROUP_DESC=”阿里软件5.4API集合1″ GMT_CREATE=”2009-1-11 01:01:01″ GMT_MODIFIED=”2009-1-11 01:01:01″
/>
INCLUDE_ISPS=”elbert_isp002,elbert_isp003″ API_GROUP_DESC=”阿里软件5.4API集合1″ GMT_CREATE=”2009-1-11 01:01:01″ GMT_MODIFIED=”2009-1-11 01:01:01″
/>
<SIP_API_GROUP API_GROUP_ID=”alitest_group4″ API_GROUP_NAME=”阿里软件测试组二” INCLUDE_APINAMES=”” EXCLUDE_APINAMES=””
INCLUDE_ISPS=”elbert_isp001″ API_GROUP_DESC=”阿里软件5.4API集合1″ GMT_CREATE=”2009-1-11 01:01:01″ GMT_MODIFIED=”2009-1-11 01:01:01″
/>
然后利用DBUNIT的方法,载入数据。在实战中这部分被分装成loadData函数如下:
loadCaseData(“testCase4_CORE.xml”,coreSchemaName);
然后实现测试的主要部分,JUNIT编码的工作。代码如下:
public class TestApiGroups extends TestBaseWS {
private static String udbSchemaName;
private static String coreSchemaName;
private String api_server = “http://10.2.226.19:8180/sip/rest”;
static String mysql_url = “jdbc:mysql://10.2.226.19:3306/sip”;
private String dir = “com//alisoft//aep//sip//core54”;
public TestApiGroups() throws Exception {
super();
db = util.DBConnection.getDbUnit();
udbSchemaName = util.DBConnection.schemaMap.get(“UDB”);
coreSchemaName = util.DBConnection.schemaMap.get(“CORE”);
System.out.println(“数据准备开始……”);
loadCaseData(“testCase2_CORE.xml”,coreSchemaName);
loadCaseData(“testCase3_CORE.xml”,coreSchemaName);
loadCaseData(“testCase4_CORE.xml”,coreSchemaName);
loadCaseData(“testCase5_CORE.xml”,coreSchemaName);
loadCaseData(“testCase6_CORE.xml”,coreSchemaName);
util.SIPHelp.Crush_Sip();
System.out.println(“数据准备完毕”);
// TODO Auto-generated constructor stub
}
public void TestCase(Map<String, String> map, String ExpXmlText,String EXPSTATUES,String EXPERROR,String sip_apiname,String AppKey)
throws Exception {
String sip_appkey =AppKey;// “test_app003”;// app_id
String sip_appsecret = “secret_app003”;
String sessionid = “123456789”;
String url = util.SIPHelp.prepareUrl(sip_appkey, sip_apiname, sip_appsecret,
api_server, sessionid,map);
System.out.println(url);
WebConversation conversation = new WebConversation();
WebRequest request = new PostMethodWebRequest(url);
WebResponse response = conversation.getResponse(request);
String ActStatus = response.getHeaderField(“sip_status”);
String ActError = response.getHeaderField(“sip_error_message”);
System.out.println(ActStatus);
assertEquals(EXPSTATUES, ActStatus);
if (EXPSTATUES.equals(“9999”))
{ assertEquals(null, ActError); }
else
{
assertEquals(EXPERROR, ActError);
}
String ActXmlTest = response.getText();
System.out.println(ActXmlTest);
assertEquals(ExpXmlText, ActXmlTest);
}
private static String udbSchemaName;
private static String coreSchemaName;
private String api_server = “http://10.2.226.19:8180/sip/rest”;
static String mysql_url = “jdbc:mysql://10.2.226.19:3306/sip”;
private String dir = “com//alisoft//aep//sip//core54”;
public TestApiGroups() throws Exception {
super();
db = util.DBConnection.getDbUnit();
udbSchemaName = util.DBConnection.schemaMap.get(“UDB”);
coreSchemaName = util.DBConnection.schemaMap.get(“CORE”);
System.out.println(“数据准备开始……”);
loadCaseData(“testCase2_CORE.xml”,coreSchemaName);
loadCaseData(“testCase3_CORE.xml”,coreSchemaName);
loadCaseData(“testCase4_CORE.xml”,coreSchemaName);
loadCaseData(“testCase5_CORE.xml”,coreSchemaName);
loadCaseData(“testCase6_CORE.xml”,coreSchemaName);
util.SIPHelp.Crush_Sip();
System.out.println(“数据准备完毕”);
// TODO Auto-generated constructor stub
}
public void TestCase(Map<String, String> map, String ExpXmlText,String EXPSTATUES,String EXPERROR,String sip_apiname,String AppKey)
throws Exception {
String sip_appkey =AppKey;// “test_app003”;// app_id
String sip_appsecret = “secret_app003”;
String sessionid = “123456789”;
String url = util.SIPHelp.prepareUrl(sip_appkey, sip_apiname, sip_appsecret,
api_server, sessionid,map);
System.out.println(url);
WebConversation conversation = new WebConversation();
WebRequest request = new PostMethodWebRequest(url);
WebResponse response = conversation.getResponse(request);
String ActStatus = response.getHeaderField(“sip_status”);
String ActError = response.getHeaderField(“sip_error_message”);
System.out.println(ActStatus);
assertEquals(EXPSTATUES, ActStatus);
if (EXPSTATUES.equals(“9999”))
{ assertEquals(null, ActError); }
else
{
assertEquals(EXPERROR, ActError);
}
String ActXmlTest = response.getText();
System.out.println(ActXmlTest);
assertEquals(ExpXmlText, ActXmlTest);
}
/**
* SIP_APP_LEVEL中含API_GROUPS字段为多个字段,且API在Group中
* @throws Exception
*/
@Test
public void TestCase4() throws Exception {
String sip_apiname = “alitest.ali-54-test204”;
//数据准备
String ExpXmlText = “not OK”;
String sip_appkey = “test_app059”;
TestCase(null,ExpXmlText,”9999″,null, sip_apiname,sip_appkey);
}
* SIP_APP_LEVEL中含API_GROUPS字段为多个字段,且API在Group中
* @throws Exception
*/
@Test
public void TestCase4() throws Exception {
String sip_apiname = “alitest.ali-54-test204”;
//数据准备
String ExpXmlText = “not OK”;
String sip_appkey = “test_app059”;
TestCase(null,ExpXmlText,”9999″,null, sip_apiname,sip_appkey);
}
原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/185558.html