Подключение к базе данных и получение некоторой информации из базы данных в Katalon Studio - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь подключиться к своей базе данных и получить оттуда некоторую информацию в Katalon Studio, но по какой-то причине это не работает.

Я создал ключевое слово db connection для соединения, а затем использую его в своем сценарии.

package db_connection

import com.kms.katalon.core.util.KeywordUtil

import groovy.sql.Sql

public class SQLHandler_Con {
    String dbConnString = "jdbc:sqlserver://testapdb\\TEST;databaseName=2007"
    String dbUsername = "testuser"
    String dbPassword = "Password!"
    String dbDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"

    Sql sql = Sql.newInstance(dbConnString,dbUsername,dbPassword,dbDriver)

    public List getSelectResults(String query) {
        KeywordUtil.logInfo("Executing the query: " + query)
        List results = sql.rows(query)
        if(results.size() == 0) {
            KeywordUtil.markFailedAndStop("No rows returned from SQL Server")
        }
        return results
    }

    public void closeConn() {
        sql.close()
    }
}

Это мой SQLHandler и другой скрипт выглядит так

public class database_Selector {

    @Keyword
    def getResource() {
        SQLHandler_Con sql = new SQLHandler_Con()
        List<GroovyRowResult> res = sql.getSelectResults('SELECT TOP 100 PERSONAL_ID, PHONE2, SMS_MOBILE_PHONE FROM CLIENTS WHERE PERSONAL_ID IS NOT NULL AND PHONE2 IS NOT NULL AND SMS_MOBILE_PHONE IS NOT NULL ')
        int countFromDb = res.get(0).get('clients')
        println("No. of rows in Database is(are):" + res.get(0))
        return countFromDb
    }
}

И когда я пытаюсь запустить это

def database_count = CustomKeywords.'db_connection.databaseSelector.getResource'()
println(database_count)

выдает ошибку: database_count = db_connection.database_Selector.getResource () FAILED.

РЕДАКТИРОВАТЬ: Я отредактировал мой код, и теперь он работает, но если у вас есть идеи, как я могу получить таблицу из базы данных, вы можете сказать мне? Мой сценарий был написан только для подсчета.

SELECT COUNT(*) as Clients FROM CLIENTS WHERE PERSONAL_ID IS NULL AND PHONE2 IS NOT NULL AND SMS_MOBILE_PHONE IS NULL

Но я хочу выполнить другое действие.

1 Ответ

0 голосов
/ 11 января 2019

нашел ответ на мой вопрос, и я решил опубликовать его здесь, если это возможно.

 @Keyword
    def getResource() {
        SQLHandler_2000 sql = new SQLHandler_2000()
        List<GroovyRowResult> res = sql.getSelectResults('SELECT TOP 10 PERSONAL_ID, PHONE2 FROM CLIENTS WHERE PERSONAL_ID IS NOT NULL AND PHONE2 IS NOT NULL')

        for(Map oneRow in res) {
        String personalId = oneRow.get("PERSONAL_ID")
        KeywordUtil.logInfo("Personal ID: " + personalId)

        String phone = oneRow.get("PHONE2")

        KeywordUtil.logInfo("Phone number: " + phone )


        WS.sendRequest(findTestObject('Object Repository/GET_Customer'))
        RequestObject get_object = findTestObject('Object Repository/GET_Customer')
        get_object.setRestUrl(String.format(get_object.getRestUrl(), personalId, phone))
        ResponseObject get_response = WS.sendRequestAndVerify(get_object)
        WS.verifyResponseStatusCode(get_response, 200)
        String getContent = get_response.getResponseBodyContent()
        }
        return res
    }
...