나는 이렇게 학습한다/Library

Pytest _ client 에서 parmas 값 넣는 방법

daco2020 2022. 4. 27. 13:25
반응형

테스트 코드를 작성하다보면 client를 사용해 uri요청을 보낼 때가 있습니다.

그리고 쿼리 파라미터(query string)는 패스 파라미터와 마찬가지로 uri를 텍스트로 작성해 보낼 수 있습니다.

 

uri를 만드는 방법 세 가지를 함께 보겠습니다.

 

방법1. 일반 텍스트

 

response = client.get(
    "http://0.0.0.0:8000/users?limit=10&offset=0"
)

하지만 텍스트로만 작성할 경우, 하나의 케이스만 테스트 할 수 있는 정적 값이 되고 맙니다.

 

 

방법2. f-string

 

다음처럼 f-string을 통해 동적 값을 넣어줄 수 있습니다.

limit = 10
offset = 0

response = client.get(
    f"http://0.0.0.0:8000/users?limit={limit}&offset={offset}"
)

limit과 offset을 변수로 만들어 다양한 케이스를 동적으로 테스트할 수 있습니다.

 

방법3. parmas=

 

더 나아가 pytest에서는 parmas 값을 딕셔너리로도 넣어줄 수도 있습니다.

 

이 경우, parmas={} 형태를 가집니다.

limit = 10
offset = 0

response = client.get(
    "http://0.0.0.0:8000/users",
    params={"limit": limit, "offset": offset},
)

이렇게 딕셔너리로 params를 넣어줘도 위에서 본 uri와 동일하게 요청을 보낼 수 있습니다.

 

 

정리

쿼리 파라미터 uri를 만드는데 어떤 방법이든 상관은 없습니다.

그저 테스트 케이스에 적합한 uri를 작성하고 가독성을 높이는데 집중하면 됩니다.

 

 

반응형