그렇다면 Karate DSL에서 baseURL을 선택하는 구현

Mihir

가라테에 약간 까다로운 요구 사항이 있습니다. 구현에 따라 선택된 karate.config에 baseURL 집합이 있습니다. 다음은 그 일부입니다.

 if (env == 'qa') {
  config.apiKey = apiKey;
  config.tsp_api = 'https://api.qa.tceu.net';
  config.svt_dcm = 'https://svt.qa.tceu.net';
  config.acn_dcm = 'https://acn.qa.tceu.net';
  config.sos_dcm = 'https://sos.qa.tceu.net';
  config.cust_dcm = 'https://cust.qa.tceu.net';

여기서 tsp, svt, acn, sos, cust는 몇 가지 작업입니다.

작업을 매개 변수로 전달하는 기능 파일이 있습니다.

# Vehicle Initiates the action
 When def Perform_Report_Notification = call read('./../common/performActionNotification.feature') { action: '#(action)' } 

호출 된 performActionNotification.feature에서 전달 된 작업을 기반으로 karate.config 파일에서 URL을 선택해야합니다. 예를 들어 작업이 sos 인 경우 URL은 sos_dcm이어야합니다. 작업이 svt이면 URL은 svt_dcm이어야합니다.

다음은 performActionNotification.feature의 스 니펫과 제가 현재 sos를 위해하고있는 일입니다.

Given url sos_dcm
And path '/AU/v1.0/TSP/'+ action
And request RequestPayload
When method post
Then status 200

다음과 유사한 if와 같은 것을 구현하고 싶습니다.

if (action == 'sos') 
then myurl == 'sos_dcm'
else if (action == 'acn')
then myurl == 'acn_dcm'
else if (action == 'svt')
then myurl == 'svt_dcm'

Given url myurl
And...
And...
...

나는 일종의 해킹을 시도했지만 작동하지만 깨끗한 방법은 아닙니다. karate.config에서 URL을 읽는 대신 다음과 같이 하드 코딩합니다.

Given url 'https://'+act+'.qa.tceu.net'

내가 시도한 또 하나는

* def myurl = action +'_dcm' #so if action is acn then the variable myurl would be acn_dcm
Given url myurl 
...
....

그러나 이것은 karate.config에서 정의 된 URL을 선택하는 대신 URL을 'acn_dcm'로 하드 코딩합니다.

누군가 이것을 구현하는 가장 좋은 방법을 친절하게 제안 할 수 있습니까?

자 와드 칼리아

조건부 논리에 자바 스크립트를 사용하는 것이 좋습니다.

따라서 자바 스크립트 함수는 동작 매개 변수를 취하고 if 및 else 문은 필요한 URL의 변수를 반환합니다.

요청을 호출하기 전에 javascript 기능을 수행하십시오. js가 반환하는 변수를 사용하여 논리를 결정하십시오.

js 파일을 여러 기능 파일에서 액세스 할 수있는 공통 함수로 만듭니다.

function determineUrl(action) {
  var url = "${urDefaultUrl}";
  if (action == "sos") url == "${full url}";
  else if (action == "acn") url == "${full url}";
  return url;
}

그런 다음 기능 파일에서

 * def urlDecider = 'classpath to your js function'
 * myUrl = urlDecider(action)
 * url myUrl
 * Given path .... 

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Karate-옵션 값에 따라 선택 구성 요소에서 옵션을 선택하는 방법

분류에서Dev

Gradle에서는 구현이 그렇지 않은 반면 API 구성이 종속성을 노출한다는 것은 실제로 무엇을 의미합니까?

분류에서Dev

Kotlin js는 gradle 구현 (빌드 파일의 npm 섹션)에서 종속성을 선택하지 않습니다.

분류에서Dev

html5 문서의 배경을 변경하는 js 색상 선택기를 구현하려고합니다.

분류에서Dev

Javascript를 사용하여 서버 끝 검색을 갖는 다중 선택을 구현해야합니다.

분류에서Dev

레코드가 발견되면 다른 테이블에서 값을 선택하십시오. 그렇지 않으면 현재 테이블의 값을 사용하십시오.

분류에서Dev

여러 선택 목록을 구현하고 jquery의 다른 선택 목록에 저장하는 방법은 무엇입니까?

분류에서Dev

C ++에서 인터페이스 설계 및 구현 : 내가하면 저주를 받고 그렇지 않으면 저주를 받는다

분류에서Dev

테이블 td 요소에서 현재 선택된 드롭 다운 옵션을 선택하는 방법

분류에서Dev

호출 클래스가 구현하는 인스턴스에서 메서드를 호출하지만 그렇지 않으면 관련이 없습니다.

분류에서Dev

사전 값에서 키 목록을 구성 할 수 있습니까? 그렇지 않다면 이것을 해결하는 더 쉬운 방법이 있습니까?

분류에서Dev

각도 6 (검색 별 필터링)에서 선택 드롭 다운을 구현하는 방법, 이름 속성으로 개체를 필터링하는 방법

분류에서Dev

모든 층 선택기 옵션을 사용하여 내 Android 활동에서 한 건물의 Google 실내 평면도를 구현하는 방법

분류에서Dev

GridView Android에서 다중 선택 구현

분류에서Dev

Vue 다중 선택을 올바르게 구현하는 중 오류

분류에서Dev

autowired 생성자에 어떤 구현을 삽입할지 선택하는 방법

분류에서Dev

Forge Viewer v7에서 사용자 지정 선택을 구현하려면 어떻게해야합니까?

분류에서Dev

구조체를 키로 사용하여 멀티 맵을 구현할 수 있습니까? 그렇다면 어떻게?

분류에서Dev

ImageView가 파란색 강조 표시로 변경된 색상으로 GridView에서 다중 항목 선택을 구현하는 방법은 무엇입니까?

분류에서Dev

프로그램에서 요일을 구현하는 수업 Day를 설계하고 구현합니다.

분류에서Dev

Karate에서 노드와 그 자식을 복제하는 방법

분류에서Dev

RWBlurPopover가 tableview에서 값을 선택할 수 없음을 구현했습니다.

분류에서Dev

다른 시트의 행에서 값을 찾고 현재 시트의 일치하는 행 및 열 머리글에 값이 있으면 현재 시트에 배치하고 그렇지 않으면 0

분류에서Dev

Gradle Kotlin dsl에서 jsonschema2pojo 플러그인을 구성하는 방법

분류에서Dev

선택하면 확인란 항목을 숨기고 그렇지 않으면 눈에 잘 띄게 유지합니다.

분류에서Dev

사용자 정의 스피너를 구현하여 Flutter에서 시간을 선택하는 방법

분류에서Dev

쉘 액세스없이 사용자에게 sftp 액세스 권한을 부여 할 수 있습니까? 그렇다면 어떻게 구현됩니까?

분류에서Dev

R에서 데이터 프레임의 선택된 열에 정규화 공식을 구현하는 방법

분류에서Dev

Vue를 사용하여 다른 구성 요소에서 사용하기 위해 선택 구성 요소에서 선택한 값을 얻는 방법

Related 관련 기사

  1. 1

    Karate-옵션 값에 따라 선택 구성 요소에서 옵션을 선택하는 방법

  2. 2

    Gradle에서는 구현이 그렇지 않은 반면 API 구성이 종속성을 노출한다는 것은 실제로 무엇을 의미합니까?

  3. 3

    Kotlin js는 gradle 구현 (빌드 파일의 npm 섹션)에서 종속성을 선택하지 않습니다.

  4. 4

    html5 문서의 배경을 변경하는 js 색상 선택기를 구현하려고합니다.

  5. 5

    Javascript를 사용하여 서버 끝 검색을 갖는 다중 선택을 구현해야합니다.

  6. 6

    레코드가 발견되면 다른 테이블에서 값을 선택하십시오. 그렇지 않으면 현재 테이블의 값을 사용하십시오.

  7. 7

    여러 선택 목록을 구현하고 jquery의 다른 선택 목록에 저장하는 방법은 무엇입니까?

  8. 8

    C ++에서 인터페이스 설계 및 구현 : 내가하면 저주를 받고 그렇지 않으면 저주를 받는다

  9. 9

    테이블 td 요소에서 현재 선택된 드롭 다운 옵션을 선택하는 방법

  10. 10

    호출 클래스가 구현하는 인스턴스에서 메서드를 호출하지만 그렇지 않으면 관련이 없습니다.

  11. 11

    사전 값에서 키 목록을 구성 할 수 있습니까? 그렇지 않다면 이것을 해결하는 더 쉬운 방법이 있습니까?

  12. 12

    각도 6 (검색 별 필터링)에서 선택 드롭 다운을 구현하는 방법, 이름 속성으로 개체를 필터링하는 방법

  13. 13

    모든 층 선택기 옵션을 사용하여 내 Android 활동에서 한 건물의 Google 실내 평면도를 구현하는 방법

  14. 14

    GridView Android에서 다중 선택 구현

  15. 15

    Vue 다중 선택을 올바르게 구현하는 중 오류

  16. 16

    autowired 생성자에 어떤 구현을 삽입할지 선택하는 방법

  17. 17

    Forge Viewer v7에서 사용자 지정 선택을 구현하려면 어떻게해야합니까?

  18. 18

    구조체를 키로 사용하여 멀티 맵을 구현할 수 있습니까? 그렇다면 어떻게?

  19. 19

    ImageView가 파란색 강조 표시로 변경된 색상으로 GridView에서 다중 항목 선택을 구현하는 방법은 무엇입니까?

  20. 20

    프로그램에서 요일을 구현하는 수업 Day를 설계하고 구현합니다.

  21. 21

    Karate에서 노드와 그 자식을 복제하는 방법

  22. 22

    RWBlurPopover가 tableview에서 값을 선택할 수 없음을 구현했습니다.

  23. 23

    다른 시트의 행에서 값을 찾고 현재 시트의 일치하는 행 및 열 머리글에 값이 있으면 현재 시트에 배치하고 그렇지 않으면 0

  24. 24

    Gradle Kotlin dsl에서 jsonschema2pojo 플러그인을 구성하는 방법

  25. 25

    선택하면 확인란 항목을 숨기고 그렇지 않으면 눈에 잘 띄게 유지합니다.

  26. 26

    사용자 정의 스피너를 구현하여 Flutter에서 시간을 선택하는 방법

  27. 27

    쉘 액세스없이 사용자에게 sftp 액세스 권한을 부여 할 수 있습니까? 그렇다면 어떻게 구현됩니까?

  28. 28

    R에서 데이터 프레임의 선택된 열에 정규화 공식을 구현하는 방법

  29. 29

    Vue를 사용하여 다른 구성 요소에서 사용하기 위해 선택 구성 요소에서 선택한 값을 얻는 방법

뜨겁다태그

보관