游戏开发论坛

 找回密码
 立即注册
搜索
查看: 825|回复: 0

如何进行接口测试框架开发?

[复制链接]

3

主题

4

帖子

33

积分

注册会员

Rank: 2

积分
33
发表于 2018-9-17 14:17:34 | 显示全部楼层 |阅读模式
 本人是在使用httpclient做接口测试的过程中,总结了一些方法,写了一个基本的测试框架。用例的管理和测试结果的保存都放在[url=]数据库[/url]中,今天算是基本完成和健全了用例的模版。分享出来供大家参考。
 [java] view plain copy
  public void case_shequ_topic_cattlist() {  
      String apiName = "shequ_topic_cattlist";  
      mark = getMark();// 获取时间戳作为测试标记  
      List<Map<String, String>> date = LocalMySql.getInstance().getCaseFromMySql(apiName);// 数据库读取用例  
      for (int i = 0; i < date.size(); i++) {// 遍历执行用例  
          int result = 0;  
          String expect_value1 = "", actual_value1 = "", expect_value2 = "", actual_value2 = "", params = "",  
                  actual_key1 = "", actual_key2 = "", actual_key3 = "", expect_value3 = "", actual_value3 = "";  
          Map<String, String> use = date.get(i);// 获取单个用例  
          String case_id = use.get("case_id");  
          /*
           * 获取检查点的key和expect_value 如果有1个检查点就写一个,兼容多个 getresult方法兼容验证点不存在情况
           */  
          expect_value1 = use.get("verify_value1");// 获取验证点期望值  
          expect_value2 = use.get("verify_value2");// 获取验证点期望值  
          expect_value3 = use.get("verify_value3");// 获取验证点期望值  
          actual_key1 = use.get("verify_key1");//获取检查点key  
          actual_key2 = use.get("verify_key2");//获取检查点key  
          actual_key3 = use.get("verify_key3");//获取检查点key  
          params = use.toString();// [url=]记录[/url]传入参数  
          JSONObject response = shequ_topic_cattlist(use);// 获取相应结果  
          actual_value1 = getDateValue(response, actual_key1);//获取验证点实际值  
          actual_value2 = getDateValue(response, actual_key2);//获取验证点实际值  
          actual_value3 = getDateContains(response, actual_key3, expect_value3);//获取验证点实际值,此为包含验证  
          result = getResult(expect_value1, actual_value1, expect_value2, actual_value2) ? 1 : 2;// 获取测试结果,1为通过,2为失败  
          LocalMySql.getInstance().saveApiTestResult(case_id, mark, result, apiName, expect_value1, actual_value1,  
                  expect_value2, actual_value2, expect_value3, actual_value3, params);// 写入数据库  
      }  
      LocalMySql.getInstance().addApiTestResult(apiName, mark, test_mark);//统计本次运行所有用例结果  
  }  

  获取响应的方法封装:
  [java] view plain copy
  public JSONObject shequ_topic_cattlist(Map<String, String> apiCase) {  
          String uri = host + "/shequ/topic/cattlist";  
          deleteMap(apiCase);  
          JSONObject jsonObject = new JSONObject(apiCase);  
          HttpGet httpGet = getHttpGet(uri, jsonObject);  
          JSONObject response = getHttpResponseEntityByJson(httpClient, httpGet);  
          return response;  
      }  

  模版做好了,其他的用例直接可以复用,就是改一下接口名和方法名的问题,看起来非常整齐。

如果是游戏测试,模块一致么~希望和我讨论Q2597867634
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-4-26 22:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表