diff --git a/app/api/services/__init__.py b/app/api/services/__init__.py index 7a9d5fc..3b9978d 100644 --- a/app/api/services/__init__.py +++ b/app/api/services/__init__.py @@ -10,9 +10,4 @@ from app.api.services.penal_charge import PenalChargeService from app.api.services.lien_check import LienCheckService from app.api.services.status_call import StatusCallService from app.api.services.sms import SMSService -from app.api.services.bulk_sms import BulkSMSService - -# from app.api.services.revoke_enable_consent import RevokeEnableConsentService -# from app.api.services.token_validation import TokenValidationService -# from app.api.services.new_transaction_check import NewTransactionCheckService -# from app.api.services.status_call import StatusCallService \ No newline at end of file +from app.api.services.bulk_sms import BulkSMSService \ No newline at end of file diff --git a/jmeter/first_advance.jmx b/jmeter/first_advance.jmx index b456d16..b52d2e0 100644 --- a/jmeter/first_advance.jmx +++ b/jmeter/first_advance.jmx @@ -1,5 +1,5 @@ - + @@ -12,36 +12,29 @@ - - continue - - false - 1 - - 5 - 5 - false - - + + 5 + 5 true + continue + + 1 + false + - - - + + 10000 + 30000 + devcore.digifi.chiefsoft.net + http + /v1/api/salary + - devcore.digifi.chiefsoft.net - - https - - /v1/api/salary - 6 - 10000 - 30000 + - @@ -55,7 +48,6 @@ - @@ -69,8 +61,6 @@ false - - @@ -156,38 +146,27 @@ - - - + + /RACCheck + true + POST + true true false - { - "transactionId": "${transactionId}", - "fbnTransactionId": "${transactionId}", - "customerId": "${customerId}", - "accountId": "${accountId}", - "RAC_Array": ["SalaryAccount", "BVN", "BVNAttachedtoAccount", "CRC", "CRMS", "AccountStatus", "Lien", "NoBouncedCheck", "Whitelist", "NoPastDueSalaryLoan", "NoPastDueOtherLoan"] + { + "transactionId": "${transactionId}", + "fbnTransactionId": "${transactionId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "RAC_Array": ["SalaryAccount", "BVN", "BVNAttachedtoAccount", "CRC", "CRMS", "AccountStatus", "Lien", "NoBouncedCheck", "Whitelist", "NoPastDueSalaryLoan", "NoPastDueOtherLoan"] } = - - - - - /RACCheck - POST - true - false - true - false - - - @@ -197,7 +176,6 @@ Failed - 200 @@ -208,7 +186,6 @@ 8 - $.RACResponse @@ -219,36 +196,25 @@ - - + /LienCheck + true + POST + true true false - { - "transactionId": "${transactionId}", - "customerId": "${customerId}", - "accountId": "${accountId}" + { + "transactionId": "${transactionId}", + "customerId": "${customerId}", + "accountId": "${accountId}" } = - - - - - /LienCheck - POST - true - false - true - false - - - @@ -258,7 +224,6 @@ 0 - lienCheckResultCode $.resultCode @@ -266,7 +231,6 @@ 99 - 200 @@ -277,7 +241,6 @@ 8 - $.resultCode 00 @@ -288,39 +251,28 @@ - - + /EligibilityCheck + true + POST + true true false - { - "transactionId": "${transactionId}", - "countryCode": "${countryCode}", - "customerId": "${customerId}", - "accountId": "${accountId}", - "msisdn": "${msisdn}", - "channel": "${channel}" + { + "transactionId": "${transactionId}", + "countryCode": "${countryCode}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "msisdn": "${msisdn}", + "channel": "${channel}" } = - - - - - /EligibilityCheck - POST - true - false - true - false - - - @@ -330,7 +282,6 @@ 101 - eligibilityResultCode $.resultCode @@ -338,7 +289,6 @@ 99 - 200 @@ -349,7 +299,6 @@ 8 - $.resultCode 00 @@ -359,7 +308,6 @@ false - $.eligibleOffers @@ -370,48 +318,36 @@ - - - ${__jexl3("${eligibilityResultCode}" == "00")} + ${__jexl3("${eligibilityResultCode}" == "00")} false true - + /SelectOffer + true + POST + true true false - { - "requestId": "${requestId}", - "transactionId": "${transactionId}", - "customerId": "${customerId}", - "accountId": "${accountId}", - "msisdn": "${msisdn}", - "requestedAmount": ${requestedAmount}, - "productId": "${productId}", - "channel": "${channel}" + { + "requestId": "${requestId}", + "transactionId": "${transactionId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "msisdn": "${msisdn}", + "requestedAmount": ${requestedAmount}, + "productId": "${productId}", + "channel": "${channel}" } = - - - - - /SelectOffer - POST - true - false - true - false - - - @@ -421,7 +357,6 @@ 99 - loanAmount $.loan[0].amount @@ -429,7 +364,6 @@ ${requestedAmount} - interestAmount $.loan[0].Interest @@ -437,7 +371,6 @@ 300 - managementFee $.loan[0].ManagementFee @@ -445,7 +378,6 @@ 100 - insuranceFee $.loan[0].InsuranceFee @@ -453,7 +385,6 @@ 100 - vatAmount $.loan[0].VATamount @@ -461,7 +392,6 @@ 75 - 200 @@ -472,7 +402,6 @@ 8 - $.resultCode 00 @@ -482,7 +411,6 @@ false - $.loan @@ -493,50 +421,38 @@ - - - ${__jexl3("${selectOfferResultCode}" == "00")} + ${__jexl3("${selectOfferResultCode}" == "00")} false true - + /ProvideLoan + true + POST + true true false - { - "requestId": "${requestId}", - "transactionId": "${transactionId}", - "customerId": "${customerId}", - "accountId": "${accountId}", - "msisdn": "${msisdn}", - "productId": "${productId}", - "requestedAmount": ${loanAmount}, - "collectionType": 0, - "offerId": ${offerId}, - "channel": "${channel}" + { + "requestId": "${requestId}", + "transactionId": "${transactionId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "msisdn": "${msisdn}", + "productId": "${productId}", + "requestedAmount": ${loanAmount}, + "collectionType": 0, + "offerId": ${offerId}, + "channel": "${channel}" } = - - - - - /ProvideLoan - POST - true - false - true - false - - - @@ -546,7 +462,6 @@ 99 - 200 @@ -557,7 +472,6 @@ 8 - $.resultCode 00 @@ -567,7 +481,6 @@ false - $.transactionId ${transactionId} @@ -578,43 +491,31 @@ - - - ${__jexl3("${provideLoanResultCode}" == "00")} + ${__jexl3("${provideLoanResultCode}" == "00")} false true - + /SMS + true + POST + true true false - { - "text": "Your loan application with ID ${transactionId} has been approved. Amount: ${loanAmount}. Thank you for choosing our service.", - "dest": "${phoneNumber}", - "unicode": false + { + "text": "Your loan application with ID ${transactionId} has been approved. Amount: ${loanAmount}. Thank you for choosing our service.", + "dest": "${phoneNumber}", + "unicode": false } = - - - - - /SMS - POST - true - false - true - false - - - @@ -624,7 +525,6 @@ 500 - 200 @@ -635,7 +535,6 @@ 8 - $.IsSuccessful true @@ -646,49 +545,38 @@ - - + /Disbursement + true + POST + true true false - { - "requestId": "${requestId}_disburse", - "countryCode": "${countryCode}", - "transactionId": "${transactionId}", - "debtId": "DID${__time(yyyyMMddHHmmss)}${__threadNum}", - "customerId": "${customerId}", - "accountId": "${accountId}", - "productId": "${productId}", - "provideAmount": ${loanAmount}, - "totalFees": ${__jexl3(${interestAmount} + ${managementFee} + ${insuranceFee} + ${vatAmount})}, - "feesDetails": { - "collectAmountInterest": ${interestAmount}, - "collectAmountMgtFee": ${managementFee}, - "collectAmountInsurance": ${insuranceFee}, - "collectAmountVAT": ${vatAmount} - }, - "countryId": "${countryId}" + { + "requestId": "${requestId}_disburse", + "countryCode": "${countryCode}", + "transactionId": "${transactionId}", + "debtId": "DID${__time(yyyyMMddHHmmss)}${__threadNum}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "productId": "${productId}", + "provideAmount": ${loanAmount}, + "totalFees": ${__jexl3(${interestAmount} + ${managementFee} + ${insuranceFee} + ${vatAmount})}, + "feesDetails": { + "collectAmountInterest": ${interestAmount}, + "collectAmountMgtFee": ${managementFee}, + "collectAmountInsurance": ${insuranceFee}, + "collectAmountVAT": ${vatAmount} + }, + "countryId": "${countryId}" } = - - - - - /Disbursement - POST - true - false - true - false - - - @@ -698,7 +586,6 @@ 99 - debtId $.debtId @@ -706,7 +593,6 @@ 0 - 200 @@ -717,7 +603,6 @@ 8 - $.resultCode 00 @@ -728,39 +613,28 @@ - - + /StatusCall + true + POST + true true false - { - "requestId": "${requestId}_status", - "countryCode": "${countryCode}", - "transactionId": "${transactionId}", - "debtId": "${debtId}", - "transactionType": "Disbursement", - "customerId": "${customerId}" + { + "requestId": "${requestId}_status", + "countryCode": "${countryCode}", + "transactionId": "${transactionId}", + "debtId": "${debtId}", + "transactionType": "Disbursement", + "customerId": "${customerId}" } = - - - - - /StatusCall - POST - true - false - true - false - - - @@ -770,7 +644,6 @@ 99 - 200 @@ -781,7 +654,6 @@ 8 - $.resultCode 00 @@ -791,7 +663,6 @@ false - $.data @@ -802,40 +673,29 @@ - - + /TransactionVerify + true + POST + true true false - { - "requestId": "${requestId}_verify", - "countryCode": "${countryCode}", - "counter": "${counter}", - "transactionId": "${transactionId}", - "customerId": "${customerId}", - "accountId": "${accountId}", - "transactionType": "Disbursement" + { + "requestId": "${requestId}_verify", + "countryCode": "${countryCode}", + "counter": "${counter}", + "transactionId": "${transactionId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "transactionType": "Disbursement" } = - - - - - /TransactionVerify - POST - true - false - true - false - - - @@ -845,7 +705,6 @@ 99 - 200 @@ -856,7 +715,6 @@ 8 - $.resultCode 00 @@ -866,7 +724,6 @@ false - $.transactionType Disbursement @@ -877,37 +734,26 @@ - - + /LoanStatus + true + POST + true true false - { - "transactionId": "${transactionId}", - "customerId": "${customerId}", - "msisdn": "${msisdn}", - "channel": "${channel}" + { + "transactionId": "${transactionId}", + "customerId": "${customerId}", + "msisdn": "${msisdn}", + "channel": "${channel}" } = - - - - - /LoanStatus - POST - true - false - true - false - - - @@ -917,7 +763,6 @@ 99 - loanDebtId $.loans[0].debtId @@ -925,7 +770,6 @@ ${debtId} - currentLoanAmount $.loans[0].currentLoanAmount @@ -933,7 +777,6 @@ ${loanAmount} - 200 @@ -944,7 +787,6 @@ 8 - $.resultCode 00 @@ -954,7 +796,6 @@ false - $.loans @@ -965,48 +806,36 @@ - - - ${__jexl3("${loanStatusResultCode}" == "00" and "${loanDebtId}" != "0")} + ${__jexl3("${loanStatusResultCode}" == "00" and "${loanDebtId}" != "0")} false true - + /PenalCharge + true + POST + true true false - { - "transactionId": "PC${__time(yyyyMMddHHmmss)}${__threadNum}", - "fbnTransactionId": "${transactionId}", - "debtId": "${loanDebtId}", - "customerId": "${customerId}", - "accountId": "${accountId}", - "penalCharge": ${penalChargeAmount}, - "lienAmount": ${penalChargeAmount}, - "comment": "Penal charge via JMeter test" + { + "transactionId": "PC${__time(yyyyMMddHHmmss)}${__threadNum}", + "fbnTransactionId": "${transactionId}", + "debtId": "${loanDebtId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "penalCharge": ${penalChargeAmount}, + "lienAmount": ${penalChargeAmount}, + "comment": "Penal charge via JMeter test" } = - - - - - /PenalCharge - POST - true - false - true - false - - - @@ -1016,7 +845,6 @@ 99 - 200 @@ -1027,7 +855,6 @@ 8 - $.resultCode 00 @@ -1038,43 +865,32 @@ - - + /BulkSMS + true + POST + true true false - [ - { - "text": "A penal charge of ${penalChargeAmount} has been applied to your loan account ${loanDebtId}. Please contact customer service for details.", - "dest": "${phoneNumber}", - "unicode": true - }, - { - "text": "Reminder: Your loan repayment is due soon. Please ensure sufficient funds in your account to avoid additional charges.", - "dest": "${phoneNumber}", - "unicode": true - } + [ + { + "text": "A penal charge of ${penalChargeAmount} has been applied to your loan account ${loanDebtId}. Please contact customer service for details.", + "dest": "${phoneNumber}", + "unicode": true + }, + { + "text": "Reminder: Your loan repayment is due soon. Please ensure sufficient funds in your account to avoid additional charges.", + "dest": "${phoneNumber}", + "unicode": true + } ] = - - - - - /BulkSMS - POST - true - false - true - false - - - @@ -1084,7 +900,6 @@ 500 - 200 @@ -1095,7 +910,6 @@ 8 - $.IsSuccessful true @@ -1106,45 +920,34 @@ - - + /CollectLoan + true + POST + true true false - { - "transactionId": "CL${__time(yyyyMMddHHmmss)}${__threadNum}", - "fbnTransactionId": "${transactionId}", - "debtId": "${loanDebtId}", - "customerId": "${customerId}", - "accountId": "${accountId}", - "productId": "${productId}", - "collectAmount": ${currentLoanAmount}, - "penalCharge": ${penalChargeAmount}, - "collectionMethod": ${collectionMethod}, - "lienAmount": ${currentLoanAmount}, - "countryId": "${countryId}", - "comment": "Collection via JMeter test" + { + "transactionId": "CL${__time(yyyyMMddHHmmss)}${__threadNum}", + "fbnTransactionId": "${transactionId}", + "debtId": "${loanDebtId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "productId": "${productId}", + "collectAmount": ${currentLoanAmount}, + "penalCharge": ${penalChargeAmount}, + "collectionMethod": ${collectionMethod}, + "lienAmount": ${currentLoanAmount}, + "countryId": "${countryId}", + "comment": "Collection via JMeter test" } = - - - - - /CollectLoan - POST - true - false - true - false - - - @@ -1154,7 +957,6 @@ 99 - collectionTransactionId $.transactionId @@ -1162,7 +964,6 @@ 0 - 200 @@ -1173,7 +974,6 @@ 8 - $.resultCode 00 @@ -1183,7 +983,6 @@ false - $.debtId ${loanDebtId} @@ -1194,40 +993,29 @@ - - + /TransactionVerify + true + POST + true true false - { - "requestId": "${requestId}_verify_collection", - "countryCode": "${countryCode}", - "counter": "${counter}", - "transactionId": "${collectionTransactionId}", - "customerId": "${customerId}", - "accountId": "${accountId}", - "transactionType": "Collection" + { + "requestId": "${requestId}_verify_collection", + "countryCode": "${countryCode}", + "counter": "${counter}", + "transactionId": "${collectionTransactionId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "transactionType": "Collection" } = - - - - - /TransactionVerify - POST - true - false - true - false - - - @@ -1237,7 +1025,6 @@ 99 - 200 @@ -1248,7 +1035,6 @@ 8 - $.resultCode 00 @@ -1258,7 +1044,6 @@ false - $.transactionType Collection @@ -1269,36 +1054,25 @@ - - + /SMS + true + POST + true true false - { - "text": "Your loan repayment of ${currentLoanAmount} has been successfully processed. Thank you for your payment.", - "dest": "${phoneNumber}", - "unicode": false + { + "text": "Your loan repayment of ${currentLoanAmount} has been successfully processed. Thank you for your payment.", + "dest": "${phoneNumber}", + "unicode": false } = - - - - - /SMS - POST - true - false - true - false - - - @@ -1308,7 +1082,6 @@ 500 - 200 @@ -1319,7 +1092,6 @@ 8 - $.IsSuccessful true @@ -1330,45 +1102,34 @@ - - + /Repayment + true + POST + true true false - { - "requestId": "${requestId}_repay", - "countryCode": "${countryCode}", - "transactionId": "${transactionId}", - "debtId": "${loanDebtId}", - "customerId": "${customerId}", - "accountId": "${accountId}", - "productId": "${productId}", - "collectedAmount": ${currentLoanAmount}, - "penalCharge": ${penalChargeAmount}, - "collectionMethod": ${collectionMethod}, - "lienAmount": ${currentLoanAmount}, - "comment": "Repayment via JMeter test" + { + "requestId": "${requestId}_repay", + "countryCode": "${countryCode}", + "transactionId": "${transactionId}", + "debtId": "${loanDebtId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "productId": "${productId}", + "collectedAmount": ${currentLoanAmount}, + "penalCharge": ${penalChargeAmount}, + "collectionMethod": ${collectionMethod}, + "lienAmount": ${currentLoanAmount}, + "comment": "Repayment via JMeter test" } = - - - - - /Repayment - POST - true - false - true - false - - - @@ -1378,7 +1139,6 @@ 99 - 200 @@ -1389,7 +1149,6 @@ 8 - $.resultCode 00 @@ -1399,7 +1158,6 @@ false - $.debtId ${loanDebtId} @@ -1414,9 +1172,7 @@ - - - + false saveConfig @@ -1453,8 +1209,7 @@ - - + false saveConfig @@ -1491,8 +1246,7 @@ - - + false saveConfig @@ -1532,4 +1286,4 @@ - \ No newline at end of file + diff --git a/jmeter/simbrella_complete_api_jwt_test.jmx b/jmeter/simbrella_complete_api_jwt_test.jmx new file mode 100644 index 0000000..f137ccc --- /dev/null +++ b/jmeter/simbrella_complete_api_jwt_test.jmx @@ -0,0 +1,1077 @@ + + + + + true + + + + BASE_URL + localhost + = + + + PORT + 5000 + = + + + API_PATH + /v1/api/salary + = + + + + + + + 1 + 1 + true + continue + + -1 + false + + + + + ${BASE_URL} + ${PORT} + http + /Authorize + true + POST + true + true + + + + false + { + "username": "your_username", + "password": "your_password" +} + = + + + + + + + + + Content-Type + application/json + + + + + + jwtToken + $.token + 1 + NO_TOKEN + + + + + false + true + false + + + + + 1 + 1 + true + continue + + -1 + false + + + + + + + Authorization + Bearer ${jwtToken} + + + Content-Type + application/json + + + + + + ${BASE_URL} + ${PORT} + http + ${API_PATH}/EligibilityCheck + true + POST + true + true + + + + false + { + "transactionId": "Tr${__time()}", + "countryCode": "NGR", + "customerId": "CN${__Random(100000,999999)}", + "accountId": "ACN${__Random(1000000,9999999)}", + "msisdn": "801${__Random(1000000,9999999)}", + "channel": "100" +} + = + + + + + + + transactionId + $.transactionId + 1 + NO_TRANSACTION_ID + + + + customerId + $.customerId + 1 + NO_CUSTOMER_ID + + + + accountId + $.accountId + 1 + ACN8263457 + + + + msisdn + $.msisdn + 1 + 8012345678 + + + + countryCode + $.countryCode + 1 + NGR + + + + offerId + $.eligibleOffers[0].offerId + 1 + 101 + + + + productId + $.eligibleOffers[0].productId + 1 + 2030 + + + + maxAmount + $.eligibleOffers[0].maxAmount + 1 + 5000 + + + + $.resultCode + 00 + true + false + false + false + + + + + ${BASE_URL} + ${PORT} + http + ${API_PATH}/RACCheck + true + POST + true + true + + + + false + { + "transactionId": "T${__time()}", + "fbnTransactionId": "${transactionId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "RAC_Array": ["SalaryAccount", "BVN", "BVNAttachedtoAccount", "CRC", "CRMS", "AccountStatus", "Lien", "NoBouncedCheck", "Whitelist", "NoPastDueSalaryLoan", "NoPastDueOtherLoan"] +} + = + + + + + + + $.resultDescription + RAC Check Successful + true + false + false + false + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + ${BASE_URL} + ${PORT} + http + ${API_PATH}/SelectOffer + true + POST + true + true + + + + false + { + "requestId": "REQ${__time()}", + "transactionId": "${transactionId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "msisdn": "${msisdn}", + "requestedAmount": "${maxAmount}", + "productId": "${productId}", + "channel": "USSD" +} + = + + + + + + + requestId + $.requestId + 1 + REQ${__time()} + + + + $.resultCode + 00 + true + false + false + false + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + ${BASE_URL} + ${PORT} + http + ${API_PATH}/ProvideLoan + true + POST + true + true + + + + false + { + "requestId": "${requestId}", + "transactionId": "${transactionId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "msisdn": "${msisdn}", + "productId": "${productId}", + "requestedAmount": "${maxAmount}", + "collectionType": 0, + "offerId": ${offerId}, + "channel": "USSD" +} + = + + + + + + + $.resultCode + 00 + true + false + false + false + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + ${BASE_URL} + ${PORT} + http + ${API_PATH}/Disbursement + true + POST + true + true + + + + false + { + "requestId": "${requestId}", + "countryCode": "${countryCode}", + "transactionId": "${transactionId}", + "debtId": "D${__time()}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "productId": "${productId}", + "provideAmount": "${maxAmount}", + "totalFees": 7075, "${accountId}", + "productId": "${productId}", + "provideAmount": "${maxAmount}", + "totalFees": 7075, + "feesDetails": { + "collectAmountInterest": 5000, + "collectAmountMgtFee": 1000, + "collectAmountInsurance": 1000, + "collectAmountVAT": 75 + }, + "countryId": "01" +} + = + + + + + + + debtId + $.debtId + 1 + D${__time()} + + + + $.resultCode + 00 + true + false + false + false + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + ${BASE_URL} + ${PORT} + http + ${API_PATH}/LienCheck + true + POST + true + true + + + + false + { + "transactionId": "LC${__time()}", + "customerId": "${customerId}", + "accountId": "${accountId}" +} + = + + + + + + + lienAmount + $.lienAmount + 1 + 0 + + + + $.resultCode + 00 + true + false + false + false + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + ${BASE_URL} + ${PORT} + http + ${API_PATH}/StatusCall + true + POST + true + true + + + + false + { + "requestId": "SC${__time()}", + "countryCode": "${countryCode}", + "transactionId": "${transactionId}", + "debtId": "${debtId}", + "transactionType": "Disbursement", + "customerId": "${customerId}" +} + = + + + + + + + $.resultCode + 00 + true + false + false + false + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + ${BASE_URL} + ${PORT} + http + ${API_PATH}/SMS + true + POST + true + true + + + + false + { + "text": "Your loan of ${maxAmount} has been approved and disbursed to your account. Thank you for using our service.", + "dest": "+${msisdn}", + "unicode": false +} + = + + + + + + + $.statusCode + 200 + true + false + false + false + + + + $.IsSuccessful + true + true + false + false + false + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + ${BASE_URL} + ${PORT} + http + ${API_PATH}/BulkSMS + true + POST + true + true + + + + false + [ + { + "text": "Your loan of ${maxAmount} has been approved and disbursed to your account. Thank you for using our service.", + "dest": "+${msisdn}", + "unicode": true + }, + { + "text": "Reminder: Your loan repayment is due in 7 days. Please ensure sufficient funds in your account.", + "dest": "+${msisdn}", + "unicode": true + }, + { + "text": "Important: Your loan application has been processed successfully. Contact customer service for any inquiries.", + "dest": "+${msisdn}", + "unicode": true + } +] + = + + + + + + + $.statusCode + 200 + true + false + false + false + + + + $.IsSuccessful + true + true + false + false + false + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + ${BASE_URL} + ${PORT} + http + ${API_PATH}/TransactionVerify + true + POST + true + true + + + + false + { + "requestId": "TV${__time()}", + "countryCode": "${countryCode}", + "counter": "1", + "transactionId": "${transactionId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "transactionType": "Disbursement" +} + = + + + + + + + $.resultCode + 00 + true + false + false + false + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + ${BASE_URL} + ${PORT} + http + ${API_PATH}/LoanStatus + true + POST + true + true + + + + false + { + "transactionId": "${transactionId}", + "customerId": "${customerId}", + "msisdn": "${msisdn}", + "channel": "USSD" +} + = + + + + + + + $.resultCode + 00 + true + false + false + false + + + + + 200 + + + Assertion.response_code + false + 8 + + + + loanDetails + $.loans + 1 + NO_LOANS + + + + currentLoanAmount + $.loans[0].currentLoanAmount + 1 + ${maxAmount} + + + + + ${BASE_URL} + ${PORT} + http + ${API_PATH}/CollectLoan + true + POST + true + true + + + + false + { + "transactionId": "CL${__time()}", + "fbnTransactionId": "${transactionId}", + "debtId": "${debtId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "productId": "${productId}", + "collectAmount": "${currentLoanAmount}", + "penalCharge": 0, + "collectionMethod": 3, + "lienAmount": "${currentLoanAmount}", + "countryId": "01", + "comment": 0, + "collectionMethod": 3, + "lienAmount": "${currentLoanAmount}", + "countryId": "01", + "comment": "Collection via JMeter test" +} + = + + + + + + + $.resultCode + 00 + true + false + false + false + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + ${BASE_URL} + ${PORT} + http + ${API_PATH}/TransactionVerify + true + POST + true + true + + + + false + { + "requestId": "TV${__time()}", + "countryCode": "${countryCode}", + "counter": "1", + "transactionId": "${transactionId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "transactionType": "Collection" +} + = + + + + + + + $.resultCode + 00 + true + false + false + false + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + ${BASE_URL} + ${PORT} + http + ${API_PATH}/PenalCharge + true + POST + true + true + + + + false + { + "transactionId": "PC${__time()}", + "fbnTransactionId": "${transactionId}", + "debtId": "${debtId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "penalCharge": 100.0, + "lienAmount": 100.0, + "comment": "Penal charge via JMeter test" +} + = + + + + + + + $.resultCode + 00 + true + false + false + false + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + ${BASE_URL} + ${PORT} + http + ${API_PATH}/TransactionVerify + true + POST + true + true + + + + false + { + "requestId": "TV${__time()}", + "countryCode": "${countryCode}", + "counter": "1", + "transactionId": "${transactionId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "transactionType": "Penalty" +} + = + + + + + + + $.resultCode + 00 + true + false + false + false + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + ${BASE_URL} + ${PORT} + http + ${API_PATH}/Repayment + true + POST + true + true + + + + false + { + "requestId": "R${__time()}", + "countryCode": "${countryCode}", + "transactionId": "${transactionId}", + "debtId": "${debtId}", + "customerId": "${customerId}", + "accountId": "${accountId}", + "productId": "${productId}", + "collectedAmount": "${currentLoanAmount}", + "penalCharge": 0, + "collectionMethod": 3, + "lienAmount": "${currentLoanAmount}", + "comment": "Repayment via JMeter test" +} + = + + + + + + + $.resultCode + 00 + true + false + false + false + + + + + 200 + + + Assertion.response_code + false + 8 + + + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + true + false + false + false + true + 0 + true + true + true + true + true + true + + + + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + true + false + false + false + true + 0 + true + true + true + true + true + true + + + + + + + +