关于通过一个接口完成对库的查询记录

怎样才能通过一个接口,完成对数据库中的所有表的查询,并以restfulApi的形式将数据返回给调用者,不知道这么做有没有意义。今天在SCDN发布了一个提问,也没有找到我想要答案。

以下是我的思考及实现:
1,首先获取库中的所有表
2,对API接口的参数进行规范化
如:/query/by/[表名]?pageSize=2&pageNum=1&nameLike=小
3,缓存某个表的所有字段,并加对应的后缀
如:name字段添加Like后缀,当请求参数中携带该参数时,执行模糊查询,如果name后缀为Eq则执行等于的查询,其他的查询方式依次进行自定义即可
4,获取请求参数,并比对参数是否在缓存的列表中,如果存在,拼接where条件sql语句
5,拼接主查询sql语句
6,执行sql查询,并返回数据

// 查询方法,QueryBean 为查询对象
private PageData query(QueryBean queryBean, Map<String, String> reqMap, boolean isPage) {
        StringBuffer sb = new StringBuffer();
        // 拼接主查询sql
        sb.append(getMainSql(queryBean, dbAccount));
        List<Object> params = new ArrayList<>();
        // 拼接条件sql
        String whereSql = createWhereSql(params, whereCache.get(queryBean.getQuerId()), reqMap);
        if (whereSql.length() > 0) {
            sb.append(" where ").append(whereSql);
        }
        PageData pageData = new PageData();
        if (isPage) {
            // 查询总条数
            pageData.setSumTotal(toInt(sumTotal(sb.toString(), dbAccount, params), 0));
            // 拼接排序sql
            addOrderBy(sb, queryBean);
            // 拼接分页sql
            String limitSql = limitSql(pageData, sb.toString(), params, reqMap);
            // 查询数据
            pageData.setResultData(DbUtils.queryHump(limitSql, dbAccount, params));
        } else {
            addOrderBy(sb, queryBean);
            pageData.setResultData(DbUtils.queryHump(sb.toString(), dbAccount, params));
        }
        if (!reqMap.containsKey("noResultDataColRemark"))
            pageData.setResultDataColRemark(tableColDesMap.get(queryBean.getQuerId()));
        return pageData;
    }
QueryBean对应的json,该json为关联表查询
{
  "leftJoinTable": [
    {
      "alias": "ui",
      "tableName": "USER_INFO",
      "mainColName": "client_no",
      "currentColName": "client_no"
    }
  ],
  "mainTableName": {
    "alias": "lm",
    "tableName": "LOAN_MSG",
    "orderBys": [
      {
        "colName": "create_time",
        "isAsc": true,
        "sort": 0
      }
    ]
  },
  "querId": "loanAndUserInfo",
  "remark": "查询贷款表,并关联用户表"
}

按此设想,即可实现通过API请求的方式查询所有表
请求路径为:
/query/by/loanAndUserInfo?pageSize=10&pageNum=1&nameLike=小明
/query/by/loanAndUserInfo?pageSize=10&pageNum=1&nameEq=小明
/query/by/loanAndUserInfo?pageSize=10&pageNum=1&nameGt=小明

{
	"pageNum":1,
	"pageSize":10,
	"sumTotal": 100,
	"resultData":[
		{
			"name":"小明"
			........
		}
	]
}

如果是单表查询,可不适用json配置

纯属没事儿干乱想的,但是如果真的这么干,好像确实可用免去重复写查询的烦恼,欢迎来吐槽!!!!在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是使用 Python 编写一个接口自动化测试框架的一般步骤: 1. 环境准备:安装 Python 和相应的依赖库(如 requests, pytest, allure 等)。 2. 设计测试用例:根据被测系统的接口文档,设计接口测试用例,包括请求数据、预期结果等。 3. 编写测试代码:使用 Python 编写测试代码,通过 requests 库发送请求,获取响应并断言结果是否符合预期。 4. 执行测试:使用 pytest 执行测试代码,并生成测试报告。 5. 生成报告:使用 allure 工具生成测试报告,包括测试结果、测试用例、错误日志、截图等信息。 6. 完善框架:根据实际需要,可以加入日志、数据驱动、多线程等功能,以提高测试效率和准确性。 需要注意的是,在实际开发中,还需要考虑接口的稳定性、数据隔离、性能测试等方面,以保证接口测试的全面性和可靠性。 ### 回答2: 用Python编写一个接口自动化框架的主要步骤如下: 1. 首先,使用Python的unittest或pytest等测试框架来创建测试用例。测试用例应该具有清晰的目标,并能对接口的各种情况进行细致的测试。 2. 编写一个配置文件,用于存储接口的URL、请求方法、请求头、请求参数等信息。这样可以方便地管理接口的配置和修改。 3. 创建一个HTTP请求类,该类应该能够发送HTTP请求并返回响应。使用Python的requests库来发送HTTP请求,并获取响应。 4. 创建一个日志类,用于记录测试过程中的关键信息,例如请求的URL、请求参数、响应码等信息。使用Python的logging模块来进行日志记录。 5. 创建一个断言类,用于对接口的响应结果进行断言。断言类应该能够判断接口的响应码、响应内容等是否符合预期。可以使用Python自带的assert语句来进行断言。 6. 编写一个测试执行类,用于执行测试用例。该类应该能够读取配置文件中的接口信息,并根据配置信息发送HTTP请求,然后进行断言判断。 7. 创建一个测试报告类,用于生成测试报告。可以使用Python的HTMLTestRunner或Allure等工具来生成漂亮的测试报告。 8. 最后,编写一个主程序,用于调用测试执行类并生成测试报告。该主程序可以使用Python的命令行参数来判断执行哪些测试用例,以及生成什么样的测试报告。 通过以上步骤,就可以用Python编写一个接口自动化框架。这个框架能够方便地管理接口的配置和测试用例,自动执行测试用例并生成漂亮的测试报告,提高测试效率和可维护性。 ### 回答3: Python是一种非常流行的编程语言,也是很多接口自动化测试框架的首选语言。以下是使用Python编写接口自动化框架的步骤和思路: 1. 安装必要的Python库:在开始编写接口自动化框架之前,我们需要确保Python的安装环境稳定,并安装所需的库,如requests、pytest、BeautifulSoup等。 2. 创建接口测试用例文件:编写接口测试用例文件,通常使用Excel或CSV格式,包含接口URL、请求方法、请求参数、预期结果等字段。 3. 编写请求封装方法:根据接口测试用例文件,编写一个请求封装方法,通过requests库发送HTTP请求,并返回响应结果。 4. 编写断言方法:编写断言方法,根据预期结果和实际响应结果进行比较,判断接口是否正常运行。 5. 编写测试用例方法:根据接口测试用例文件中的数据,编写测试用例方法,调用请求封装方法和断言方法,完成接口测试的一次运行。 6. 编写测试用例运行入口:编写一个测试用例运行入口方法,读取接口测试用例文件,循环调用测试用例方法,并输出测试结果。 7. 设置测试报告:使用Python库中的HTMLTestRunner或pytest-html等库生成测试报告,以方便看和分析测试结果。 8. 编写自动化测试脚本:根据实际需求,结合定时任务或持续集成工具(如Jenkins)等,编写自动化测试脚本,实现自动化测试的运行和报告生成。 总结来说,使用Python编写接口自动化框架主要包括创建接口测试用例文件、编写请求封装方法、断言方法、测试用例方法和测试用例运行入口等步骤。通过这些步骤,我们可以实现对接口的自动化测试,并生成相应的测试报告。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值