Как выполнить Python REST API набор тестов на AWS Lambda - PullRequest
0 голосов
/ 19 февраля 2020

По сути, я написал тесты API с использованием Python REST API test kit, ниже тесты работают нормально в моей локальной среде, вот тесты

import requests
import json

def test_post_headers_body_json():
 url = 'https://httpbin.org/post'

  # Additional headers.
 headers = {'Content-Type': 'application/json' } 

  # Body
 payload = {'key1': 1, 'key2': 'value2'}

  # convert dict to json by json.dumps() for body data. 
   resp = requests.post(url, data = json.dumps(payload,indent=4))       

  # Validate response headers and body contents, e.g. status code.
    assert resp.status_code == 200
    resp_body = resp.json()
 assert resp_body['url'] == url

    # print response full body as text
    print(resp.text)

Теперь для запуска тестов на моем локальном компьютере все, что мне нужно для этого просто откройте командную строку и введите pytest в папке сценария, и вы получите результат теста следующим образом.

   pytest
   ================ test session starts =======================

Но как я могу запустить тот же python набор тестов, написанный выше в AWS Среда LAMBDA, потому что AWS лямбда имеет код обработчика ниже, который отличается от того, что у меня есть выше, как я могу включить свой код здесь в код обработчика AWS лямбда?

    import json

    def lambda_handler(event, context):
      # TODO implement
     return {
          'statusCode': 200,
           'body': json.dumps('Hello from Lambda!')
            }

1 Ответ

1 голос
/ 19 февраля 2020

В коде функции Lambda замените:

# TODO implement

следующим вызовом:

test_post_headers_body_json()

Все это будет выглядеть примерно так:

import json
import requests

def lambda_handler(event, context):
  test_post_headers_body_json()
  return {
      'statusCode': 200,
       'body': json.dumps('Hello from Lambda!')
        }

def test_post_headers_body_json():
  url = 'https://httpbin.org/post'

  # Additional headers.
  headers = {'Content-Type': 'application/json' } 

  # Body
  payload = {'key1': 1, 'key2': 'value2'}

  # convert dict to json by json.dumps() for body data. 
  resp = requests.post(url, data = json.dumps(payload,indent=4))       

  # Validate response headers and body contents, e.g. status code.
  assert resp.status_code == 200
  resp_body = resp.json()
  assert resp_body['url'] == url

  # print response full body as text
  print(resp.text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...