1 上传数据库驱动 {#1-%E4%B8%8A%E4%BC%A0%E6%95%B0%E6%8D%AE%E5%BA%93%E9%A9%B1%E5%8A%A8}
数据库驱动需要在【系统设置-系统-插件】上传驱动包,数据库驱动在 应用商店 下载
2 配置数据库 {#2-%E9%85%8D%E7%BD%AE%E6%95%B0%E6%8D%AE%E5%BA%93}
点击【项目管理-环境管理-数据库-添加数据源】进入数据库配置页面,填写数据库连接信息即可
常见数据库连接 URL 可参考在线文档: https://metersphere.io/docs/v3.x/user_manual/project_management/environment/#23
3 数据库 SQL 操作 {#3-%E6%95%B0%E6%8D%AE%E5%BA%93-sql-%E6%93%8D%E4%BD%9C}
【接口测试-用例/场景】前置/后置操作里能添加 SQL 操作,点击【引入数据源】可将配置的数据源引入。
3.1 按列存储 {#3.1-%E6%8C%89%E5%88%97%E5%AD%98%E5%82%A8}
写入 SQL 语句,将获取到值进行【按列存储】,如下图,会将查询的 id 列和 password 列分别存到 id,password里,后续在请求里可通过 ${id_#}/ ${password_#} 获取这列总行数,${id_1}/${password_1} 获取这列的第1条数据,${id_2}/${password_2} 获取这列的第2条数据。如若不想通过 ${id_1}/${password_1} 进行引用,则在【提取参数】处将 id_1/password_1 存为新变量,后续 ${新变量} 进行引用。
请求中引用新变量,可正常引用并发送请求。
3.2 按结果存储 {#3.2-%E6%8C%89%E7%BB%93%E6%9E%9C%E5%AD%98%E5%82%A8}
写入 SQL 语句,将查询值【按结果存储】,会将所有的查询结果按照对象的模式进行存储到变量中,后续需要通过脚本去处理数据。
按结果存储获取到数据格式为 [{id=kaibo}],若需要对数据进行处理获取想要的值,最后再通过 vars.put("key", value); 将值存进变量里,后续直接 ${key} 进行引用。
# 获取数据库的存储结果
res=vars.get("result");
log.info("==res=="+res);
# 对数据进行处理,获取值 kaibo
p=res.split("=");
name=p[1].split("}");
log.info("==name=="+name[0]);
# 将值 kaibo 存为 username 变量
vars.put("username",name[0]);
4 执行多条 sql {#4-%E6%89%A7%E8%A1%8C%E5%A4%9A%E6%9D%A1-sql}
对于 mysql 数据库,数据库连接 URL 后面拼接 ?allowMultiQueries=true 参数即可在 SQL 脚本处执行多条 sql。
对于 Oracle 数据库,数据库连接 URL 后面不需要拼接参数,直接在 SQL 脚本写多条 sql,格式为 【DECLARE begin 多条sql end;】