我有一个连接到2个数据库的Spring Boot应用程序。我有黄瓜测试,可以测试应用程序的不同端点。我可以在开发环境中使用Jenkins管道成功运行测试。登录到数据库的凭据使用属性文件中的普通测试。当我尝试在使用密码密码连接到数据库的QA环境中运行相同的测试时,由于用户名/密码登录被拒绝,因此15个测试中有3个失败:
springframework.jdbc.CannotGetJdbcConnectionException:失败 获取JDBC连接;嵌套异常是java.sql.SQLException: ORA-01017:无效的用户名/密码;登录被拒绝
失败的3个测试会插入或删除。我已经检查了凭据,并且他们有权执行这些任务。我可以在本地运行Cucumber测试,并使用密码将其指向QA数据库,然后测试成功。
在Jenkins文件中,我们这样设置用户名和密码:
environment {
LHL_DB_LOGIN_L4 = credentials('LHL_db')
TMS_DB_LOGIN_L4 = credentials('l4_db')
server = ''
fileName = ''
fileName2 = ''
}
sh """#!/bin/bash
echo "Run Cucumber "
export tms_db_user="$TMS_DB_LOGIN_L4_USR"
export tms_db_pw="$TMS_DB_LOGIN_L4_PSW"
export lhl_db_user="$LHL_DB_LOGIN_L4_USR"
export lhl_db_pw="$LHL_DB_LOGIN_L4_PSW"
export SPRING_PROFILES_actIVE=cucumberL4
sleep 30
./gradlew cucumberTest --info
"""
}
这些测试是前3个测试。但是最后十二个成功。因此,凭据有效,但不能用于插入和删除。但是,如果未在Jenkins文件中使用这些凭据,则它们会起作用。 (在本地运行) Jenkins文件可用于开发环境。