【SIP】OPEN API测试实战源代码

简介:
上篇文字介绍了如何利用正交验证法来实现测试用例的设计。本篇文章将针对上篇文章介绍代码的实现。以授权用例一的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
  -->
 <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"
 />
    然后利用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);
 }
 /**
  * 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);
 }
 

本文转自elbertchen 51CTO博客,原文链接:http://blog.51cto.com/linkyou/282651,如需转载请自行联系原作者
相关文章
|
3月前
|
测试技术 API 项目管理
API测试方法
【10月更文挑战第18天】API测试方法
68 1
|
5天前
|
安全 API 数据安全/隐私保护
速卖通AliExpress商品详情API接口深度解析与实战应用
速卖通(AliExpress)作为全球化电商的重要平台,提供了丰富的商品资源和便捷的购物体验。为了提升用户体验和优化商品管理,速卖通开放了API接口,其中商品详情API尤为关键。本文介绍如何获取API密钥、调用商品详情API接口,并处理API响应数据,帮助开发者和商家高效利用这些工具。通过合理规划API调用策略和确保合法合规使用,开发者可以更好地获取商品信息,优化管理和营销策略。
|
13天前
|
JSON API 数据格式
淘系等商品评论Json数据格式参考,API接口测试
通过以上示例和说明,你可以了解淘系商品评论的JSON数据结构和如何使用相关API接口获取评论数据。在实际操作中,你需要参考具体的API接口文档和开放平台的相关说明进行配置和调用。
|
14天前
|
测试技术 API 数据库
淘宝商品详情高级版 (item_get_pro)API如何测试
要测试淘宝商品详情高级版API(item_get_pro),需先阅读API文档,注册开放平台账号,创建应用获取密钥,搭建测试环境,选择测试工具。测试时设计用例,配置工具,发送请求,验证响应,记录日志。注意安全和数据格式。
|
29天前
|
监控 数据管理 测试技术
API接口自动化测试深度解析与最佳实践指南
本文详细介绍了API接口自动化测试的重要性、核心概念及实施步骤,强调了从明确测试目标、选择合适工具、编写高质量测试用例到构建稳定测试环境、执行自动化测试、分析测试结果、回归测试及集成CI/CD流程的全过程,旨在为开发者提供一套全面的技术指南,确保API的高质量与稳定性。
|
2月前
|
SQL 测试技术 API
如何编写API接口的自动化测试脚本
本文详细介绍了编写API自动化测试脚本的方法和最佳实践,涵盖确定测试需求、选择测试框架、编写测试脚本(如使用Postman和Python Requests库)、参数化和数据驱动测试、断言和验证、集成CI/CD、生成测试报告及维护更新等内容,旨在帮助开发者构建高效可靠的API测试体系。
|
2月前
|
Java 测试技术 API
详解Swagger:Spring Boot中的API文档生成与测试工具
详解Swagger:Spring Boot中的API文档生成与测试工具
42 4
|
2月前
|
JSON BI API
商城上货API接口的实战案例
在商城上货过程中,API接口扮演着至关重要的角色。以下是对商城上货API接口的实战分析,涵盖其主要功能、类型、安全性以及实战案例等方面。
|
2月前
|
XML 数据可视化 API
商品详情数据实战案例,API接口系列
淘宝商品详情数据在电商领域具有广泛的应用价值,而淘宝商品详情API接口则为开发者提供了获取这些数据的重要途径。通过合理利用这些接口和数据,可以提升业务效率、优化用户体验,为电商行业的发展注入新的活力。
|
2月前
|
安全 测试技术 API
如何实现API接口的自动化测试?
实现API接口的自动化测试涉及多个关键步骤:确定测试范围和目标、编写测试用例、选择自动化测试工具、搭建测试环境、编写测试脚本、执行测试、分析结果和回归测试。选择合适的工具和考虑团队熟悉度是成功的关键。常用工具包括Postman、JMeter和SoapUI。通过这些步骤和工具,可以有效提高测试效率和质量,确保API的稳定性和可靠性。