Pytest 주장 오류를 차단하 테스트 실행

0

질문

나는 다음과 같은 코드를 읽는 데이터를 외부에서 엑셀과 충돌 post 요청을 하지만 때마다 발생하는 주장에 오류가 1 행 데이터를 설정에서 excel,루지 및 나머지 excel 행한이 없습니다. 프로그램 실행을 가져옵 중지에서는 점이다. 이것을 극복 하는 방법? 나의 요구 사항은의 경우는 10 데이터 세트(10 행 excel),주장에서 실패하면 5 일 중 하나는 예를 들어,그것을 실행해야 하는 프로그램과 함께 남아있는 데이터 세트와에서 끝을 표시하 테스트 사례로 실행하지 못했습니다.

def test_1A():

url_plan = getCOnfigurations()['API']['URL'] + APIResources.endpoints_plans
classic_sum_values = [200000, 300000, 400000]
payload_plan = open('C:/Users/aprat/PycharmProjects/RSAHealthPytest/PayLoads/plans/1A.json','r')
json_payload_plan = json.loads(payload_plan.read())

obj = Library.BaseClass("C:/Users/aprat/PycharmProjects/RSAHealthPytest/TestData/1A/TestData1A.xlsx","sheet1")
col = obj.fetch_column_count()
row = obj.fetch_row_count()
key_age = obj.fetch_key_names()
key_dob = obj.fetch_key_names()
key_sum = obj.fetch_key_names()
key_ten = obj.fetch_key_names()
key_pr_mem_age = obj.fetch_key_names()

for i in range(2, row+1):
    datadriven_json_data_plan = obj.update_request_with_data_plan1A(i,json_payload_plan,key_age,key_dob,key_pr_mem_age,key_sum,key_ten)
    a1_age = json_payload_plan['payload']['data']['insured'][0]['age']
    a1_dob = json_payload_plan['payload']['data']['insured'][0]['dob']
    prim_mem_age = json_payload_plan['payload']['data']['primary_member_age']
    tot_sum = json_payload_plan['payload']['data']['sum_insured']
    tenure = json_payload_plan['payload']['data']['tenure']
    response = requests.post(url_plan, json=datadriven_json_data_plan,)
    json_response_plan = response.json()
    print(json_response_plan)
    if int(tenure) == 1 or int(tenure) == 2 or int(tenure) == 3:
        if int(tot_sum) in classic_sum_values:
            if int(18) <= int(a1_age) <= int(50):
                print(json_response_plan[0]['article_code'])
                try:
                    assert int(json_response_plan[0]['premium']) > int(1)
                    assert int(json_response_plan[0]['term']) == int(tenure)
                    assert int(json_response_plan[0]['validity']) == int(tenure)
                    assert int(json_response_plan[0]['sa']) == int(tot_sum)
                except Exception as e:
                    json_data = datadriven_json_data_plan
                    sys.stdout = open("plans_classic_1A.log", "a")
                    _, _, tb = sys.exc_info()
                    traceback.print_tb(tb)
                    tb_info = traceback.extract_tb(tb)
                    filename, line, func, text = tb_info[-1]
                    print('An error occurred on line {} in statement {}'.format(line, text))
                    print("Test failure due to assertion error")
                    print("adult1 age=" + " " + str(a1_age))
                    print("sum insured=" + " " + str(tot_sum))
                    print("tenure=" + " " + str(tenure))
                    print(json.dumps(json_data, indent=2))
                    print("**************************************************************************")
                    raise e
api automation pytest python
2021-11-23 17:28:41
1

최고의 응답

0

문제를 제기하는 오류를 할 수 있도록,전달합니다. 제거 raise e 라인의 끝에서 당신의 코드를 추가 어떤 종류의 오류 처리/로깅을 통과하는 보고서입니다.

목록을 추가하는 가장 간단한 솔루션이지만,사용하는 파이썬 logging 패키지가 될 것입니다 더 나은 장기적인 솔루션입니다.

편집:이 귀하의 코멘트,플래그를 설정하는 기본값이 True/성공입니다. 그것이 실패하는 경우에 한 번,그것은 자동으로 설정하면 False/실패입니다.

예를 들어:

def test1a():
    successFlag = True
...
    except Exception as e:
        successFlag = False

    return successFlag

2021-11-23 19:31:46

제 올리 전자 라인,하지만 그 시간 전체를 테스트 실행하여 전달하는 테스트 보고서는 오해의 소지가 있습니다.
Apratim Chaudhuri

추가 있는 편집하는 플래그와 함께하는 트랙이다.
Alex D

이 방법 제품에 대한 질문이 존재하지 않습니다. 후 실행,테스트 케이스 상태를 보여주는으로 전달
Apratim Chaudhuri

아무것에서 당신의 코드를 표시할 수 있는 통과/실패 기능을 추가 정보를 제공하십시오.*넘어서"이것은 실패".
Alex D

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................