Fondamentalement, j'ai écrit des tests d'API à l'aide de la suite de tests API REST Python, les tests ci-dessous fonctionnent bien sur mon environnement local, voici les tests

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)

Maintenant, pour exécuter des tests sur mon site local, tout ce que j'ai à faire est d'ouvrir une invite de commande et de taper pytest dans le dossier de script, et vous obtiendrez un résultat de test comme suit.

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

Mais comment puis-je exécuter la même suite de tests python écrite ci-dessus dans l'environnement AWS LAMBDA car AWS lambda a un code de gestionnaire ci-dessous qui est différent de ce que j'ai ci-dessus, comment puis-je inclure mon code ici dans le code du gestionnaire AWS lambda ?

    import json

    def lambda_handler(event, context):
      # TODO implement
     return {
          'statusCode': 200,
           'body': json.dumps('Hello from Lambda!')
            }
1
mark liberhman 19 févr. 2020 à 06:05

1 réponse

Meilleure réponse

Dans votre code de fonction Lambda, remplacez :

# TODO implement

Avec l'appel suivant :

test_post_headers_body_json()

L'ensemble ressemblerait à ceci :

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)
1
Mark B 19 févr. 2020 à 15:03