Usar a API TestState para testar um estado no Step Functions
A API TestState aceita a definição de um único estado e a executa. É possível testar um estado sem criar uma máquina de estado nem atualizar uma existente.
Usando a API TestState, é possível testar o seguinte:
-
O fluxo de dados de processamento de entrada e de saída de um estado.
-
A integração de um AWS service (Serviço da AWS) à solicitação e à resposta de outros Serviços da AWS.
-
A solicitação e a resposta de uma tarefa HTTP.
Para testar um estado, também é possível usar o console do Step Functions, a AWS Command Line Interface (AWS CLI) ou o SDK.
A API TestState assume um perfil do IAM que deve conter as permissões do IAM necessárias para os recursos acessados pelo estado. Para obter informações sobre as permissões necessárias a um estado, consulte Permissões do IAM para usar a API TestState.
Tópicos
Considerações sobre o uso da API TestState
Usando a API TestState, é possível testar apenas um estado por vez. Os estados que você pode testar incluem os seguintes:
Ao usar a API TestState, tenha em mente as considerações a seguir.
-
A API TestState não aceita os seguintes itens:
-
Estado de tarefa do fluxo de trabalhoEstados que usem os seguintes tipos de recurso:
-
Padrões de integração de serviço do tipo
.syncou.waitForTaskToken
-
-
Um teste pode ser executado por até cinco minutos. Se um teste exceder essa duração, ele falhará com o erro
States.Timeout.
Usar níveis de inspeção na API TestState
Para testar um estado usando a API TestState, você vai fornecer a definição desse estado. O teste então exibe uma saída. Para cada estado, é possível especificar a quantidade de detalhes que você deseja visualizar nos resultados do teste. Esses detalhes fornecem informações adicionais sobre o estado que você está testando. Por exemplo, se você usou algum filtro de processamento de dados de entrada e de saída, como InputPath ou ResultPath em um estado, poderá visualizar os resultados intermediários e finais do processamento de dados.
O Step Functions oferece os seguintes níveis para especificar os detalhes a serem visualizados:
Todos esses níveis também exibem os campos status e nextState. O status indica o status da execução do estado. Por exemplo, SUCCEEDED, FAILED, RETRIABLE e CAUGHT_ERROR. nextState indica o nome do próximo estado para o qual fazer a transição. Se você não definiu o próximo estado na definição, esse campo exibirá um valor vazio.
Para obter informações sobre como testar um estado usando esses níveis de inspeção no console do Step Functions e na AWS CLI, consulte Testar um estado (console) e Testar um estado usando a AWS CLI.
Nível de inspeção INFO
Se o teste for bem-sucedido, esse nível mostrará a saída do estado. Se o teste falhar, esse nível mostrará a saída do erro. Por padrão, o Step Functions define o Nível de inspeção como INFO se você não especificar um nível.
A imagem a seguir mostra um teste bem-sucedido para um estado Aprovado. O Nível de inspeção desse estado é definido como INFO e a saída do estado é exibida na guia Saída.
A imagem a seguir mostra um teste que falhou em um estado de Tarefa quando o Nível de inspeção está definido como INFO. A guia Saída mostra a saída do erro que inclui o nome e uma explicação detalhada da causa desse erro.
Nível de inspeção DEBUG
Se o teste for bem-sucedido, esse nível mostrará a saída do estado e o resultado do processamento dos dados de entrada e de saída.
Se o teste falhar, esse nível mostrará a saída do erro. Esse nível mostra os resultados intermediários do processamento de dados até o ponto de falha. Por exemplo, digamos que você testou um estado de Tarefa que invoque uma função do Lambda. Imagine que você tenha aplicado os filtros InputPath, Parâmetros, Especificar a saída de estado usando ResultPath no Step Functions e Filtrar a saída de estado usando OutputPath ao estado de Tarefa. Digamos que a invocação tenha falhado. Nesse caso, o nível DEBUG mostra os resultados do processamento de dados com base na aplicação dos filtros na seguinte ordem:
-
input: entrada de estado bruto. -
afterInputPath: entrada após o Step Functions aplicar o filtroInputPath. -
afterParameters: a entrada efetiva após o Step Functions aplicar o filtroParameters.
As informações de diagnóstico disponíveis nesse nível podem ajudar a solucionar problemas relacionados a uma integração de serviços ou ao fluxo de processamento de dados de entrada e de saída definido.
A imagem a seguir mostra um teste bem-sucedido para um estado Aprovado. O Nível de inspeção para esse estado é definido como DEBUG. A guia Processamento de entrada/saída na imagem a seguir mostra o resultado da aplicação de Parameters na entrada fornecida para esse estado.
A imagem a seguir mostra um teste que falhou em um estado de Tarefa quando o Nível de inspeção está definido como DEBUG. A guia Processamento de entrada/saída na imagem a seguir mostra o resultado do processamento de dados de entrada e de saída para o estado até o ponto da falha.
Nível de inspeção TRACE
O Step Functions oferece o nível TRACE para testar uma tarefa HTTP. Esse nível retorna informações sobre a solicitação HTTP feita pelo Step Functions e a resposta que uma API HTTPS exibe. A resposta pode conter informações, como cabeçalhos e corpo da solicitação. Além disso, é possível visualizar a saída do estado e o resultado do processamento de dados de entrada e de saída nesse nível.
Se o teste falhar, esse nível mostrará a saída do erro.
Esse nível é aplicável somente para tarefas HTTP. O Step Functions vai gerar um erro se você usar esse nível para outros tipos de estado.
Ao definir o Nível de inspeção como TRACE, também é possível visualizar os segredos incluídos na conexão com o EventBridge. Para fazer isso, é necessário definir o parâmetro revealSecrets como true na API TestState. Além disso, é necessário garantir que o usuário do IAM que chama a API TestState tenha permissão para a ação states:RevealSecrets. Para ver um exemplo de política do IAM que concede a permissão states:RevealSecrets, consulte Permissões do IAM para usar a API TestState. Sem essa permissão, o Step Functions gera um erro de acesso negado.
Se você definir o parâmetro revealSecrets como false, o Step Functions omitirá todos os segredos nos dados de solicitação e resposta HTTP.
A imagem a seguir mostra um teste bem-sucedido para uma tarefa HTTP. O Nível de inspeção para esse estado é definido como TRACE. A guia Solicitação e resposta HTTP na imagem a seguir mostra o resultado da chamada de API HTTPS.
Permissões do IAM para usar a API TestState
O usuário do IAM que chama a API TestState deve ter permissão para realizar ações states:TestState e iam:PassRole.
Além disso, se você definir o parâmetro revealSecrets como true, deverá garantir que o usuário do IAM tenha permissões para realizar a ação states:RevealSecrets. Sem essa permissão, o Step Functions gera um erro de acesso negado.
Também é necessário garantir que o perfil de execução contenha as permissões necessárias para os recursos que o estado está acessando. Para obter informações sobre as permissões que o estado pode precisar, consulte Gerenciar perfis de execução.
Testar um estado (console)
É possível testar um estado no console e conferir a saída do estado ou o fluxo de processamento de dados de entrada e de saída. Para uma tarefa HTTP, é possível testar a solicitação e a resposta HTTP brutas.
Como testar um estado
-
Abra o console do Step Functions
. -
Selecione Criar uma máquina de estado para começar a criar uma máquina de estado ou escolha uma máquina de estado existente.
-
No Modo de design do Workflow Studio, selecione um estado que deseja testar.
-
Selecione Testar estado no painel Painel Inspetor do Workflow Studio.
-
Na caixa de diálogo Testar estado, faça o seguinte:
-
Em Perfil de execução, selecione um perfil de execução para testar o estado. Tenha as permissões do IAM necessárias para o estado que deseja testar.
-
(Opcional) Forneça todas as entradas JSON de que o estado selecionado precise para o teste.
-
Em Nível de inspeção, selecione uma das seguintes opções com base nos valores que você deseja visualizar:
-
INFO: mostrará a saída do estado na guia Saída se o teste for bem-sucedido. Se o teste falhar, INFO mostrará a saída do erro que inclui o nome e uma explicação detalhada da causa desse erro. Por padrão, o Step Functions definirá o Nível de inspeção como INFO se você não especificar um nível.
-
DEBUG: mostrará a saída do estado e o resultado do processamento dos dados de entrada e de saída se o teste for bem-sucedido. Se o teste falhar, DEBUG mostrará a saída do erro que inclui o nome e uma explicação detalhada da causa desse erro.
-
TRACE: mostra a solicitação e a resposta HTTP brutas e é útil para verificar cabeçalhos, parâmetros de consulta e outros detalhes específicos da API. Essa opção só está disponível para a tarefa HTTP.
Também é possível selecionar Revelar segredos. Em combinação com TRACE, essa configuração permite que você veja os dados confidenciais que a conexão com o EventBridge insere, como chaves de API. A identidade do usuário do IAM que você usa para acessar o console deve ter permissão para realizar a ação
states:RevealSecrets. Sem essa permissão, o Step Functions gera um erro de acesso negado ao iniciar o teste. Para ver um exemplo de política do IAM que concede essas permissõesstates:RevealSecrets, consulte Permissões do IAM para usar a API TestState.
-
-
Selecione Iniciar teste.
-
Testar um estado usando a AWS CLI
É possível testar um estado compatível usando a API TestState na AWS CLI. A API aceita a definição de um estado e a executa.
Para cada estado, é possível especificar a quantidade de detalhes que você deseja visualizar nos resultados do teste. Esses detalhes fornecem informações adicionais sobre a execução do estado, incluindo o resultado do processamento de dados de entrada e de saída e as informações de solicitação e resposta HTTP. Os exemplos a seguir mostram os diferentes níveis de inspeção que você pode especificar para a API TestState. Lembre-se de substituir o texto em itálico pelas informações específicas do recurso.
Esta seção contém os seguintes exemplos que descrevem como usar os diferentes níveis de inspeção fornecidos pelo Step Functions na AWS CLI:
Exemplo 1: Usar o nível de inspeção INFO para testar um estado de escolha
Para testar um estado usando o Nível de inspeção INFO na AWS CLI, execute o comando test-state conforme mostrado no exemplo a seguir.
aws stepfunctions test-state \ --definition '{"Type": "Choice", "Choices": [{"Variable": "$.number", "NumericEquals": 1, "Next": "Equals 1"}, {"Variable": "$.number", "NumericEquals": 2, "Next": "Equals 2"}], "Default": "No Match"}' \ --role-arn arn:aws:iam::account-id:role/myRole\ --input '{"number": 2}'
Este exemplo usa um estado de escolha para determinar o caminho de execução do estado com base na entrada numérica fornecida. Por padrão, o Step Functions definirá o inspectionLevel como INFO se você não definir um nível.
O Step Functions exibe a saída a seguir.
{
"output": "{\"number\": 2}",
"nextState": "Equals 2",
"status": "SUCCEEDED"
}
Exemplo 2: Usar o Nível de inspeção DEBUG para depurar o processamento de dados de entrada e de saída em um estado Aprovado
Para testar um estado usando o Nível de inspeção DEBUG na AWS CLI, execute o comando test-state conforme mostrado no exemplo a seguir.
aws stepfunctions test-state \ --definition '{"Type": "Pass", "InputPath": "$.payload", "Parameters": {"data": 1}, "ResultPath": "$.result", "OutputPath": "$.result.data", "Next": "Another State"}' \ --role-arn arn:aws:iam::account-id:role/myRole\ --input '{"payload": {"foo": "bar"}}' \ --inspection-level DEBUG
Este exemplo usa um estado Estado de passagem do fluxo de trabalho para mostrar como o Step Functions filtra e manipula os dados JSON de entrada usando os filtros de processamento de dados de entrada e de saída. Este exemplo usa estes filtros: InputPath, Parâmetros, Especificar a saída de estado usando ResultPath no Step Functions e Filtrar a saída de estado usando OutputPath.
O Step Functions exibe a saída a seguir.
{
"output": "1",
"inspectionData": {
"input": "{\"payload\": {\"foo\": \"bar\"}}",
"afterInputPath": "{\"foo\":\"bar\"}",
"afterParameters": "{\"data\":1}",
"afterResultSelector": "{\"data\":1}",
"afterResultPath": "{\"payload\":{\"foo\":\"bar\"},\"result\":{\"data\":1}}"
},
"nextState": "Another State",
"status": "SUCCEEDED"
}
Exemplo 3: usar o TRACE inspectionLevel e revealSecrets para inspecionar a solicitação HTTP enviada a uma API HTTPS
Para testar uma tarefa HTTP usando o inspectionLevel TRACE junto com o parâmetro revealSecrets na AWS CLI, execute o comando test-state conforme mostrado no exemplo a seguir.
aws stepfunctions test-state \
--definition '{"Type": "Task", "Resource": "arn:aws:states:::http:invoke", "Parameters": {"Method": "GET", "Authentication": {"ConnectionArn": "arn:aws:events:region:account-id:connection/MyConnection/0000000-0000-0000-0000-000000000000"}, "ApiEndpoint": "https://httpbin.org/get", "Headers": {"definitionHeader": "h1"}, "RequestBody": {"message": "Hello from Step Functions!"}, "QueryParameters": {"queryParam": "q1"}}, "End": true}' \
--role-arn arn:aws:iam::account-id:role/myRole \
--inspection-level TRACE \
--reveal-secrets
Este exemplo testa se a tarefa HTTP chama a API HTTPS especificada, https://httpbin.org/. Ele também mostra os dados de solicitação e resposta HTTP para a chamada de API.
{
"output": "{\"Headers\":{\"date\":[\"Tue, 21 Nov 2023 00:06:17 GMT\"],\"access-control-allow-origin\":[\"*\"],\"content-length\":[\"620\"],\"server\":[\"gunicorn/19.9.0\"],\"access-control-allow-credentials\":[\"true\"],\"content-type\":[\"application/json\"]},\"ResponseBody\":{\"args\":{\"QueryParam1\":\"QueryParamValue1\",\"queryParam\":\"q1\"},\"headers\":{\"Authorization\":\"Basic XXXXXXXX\",\"Content-Type\":\"application/json; charset=UTF-8\",\"Customheader1\":\"CustomHeaderValue1\",\"Definitionheader\":\"h1\",\"Host\":\"httpbin.org\",\"Range\":\"bytes=0-262144\",\"Transfer-Encoding\":\"chunked\",\"User-Agent\":\"Amazon|StepFunctions|HttpInvoke|region\",\"X-Amzn-Trace-Id\":\"Root=1-0000000-0000-0000-0000-000000000000\"},\"origin\":\"12.34.567.891\",\"url\":\"https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1\"},\"StatusCode\":200,\"StatusText\":\"OK\"}",
"inspectionData": {
"input": "{}",
"afterInputPath": "{}",
"afterParameters": "{\"Method\":\"GET\",\"Authentication\":{\"ConnectionArn\":\"arn:aws:events:region:account-id:connection/foo/a59c10f0-a315-4c1f-be6a-559b9a0c6250\"},\"ApiEndpoint\":\"https://httpbin.org/get\",\"Headers\":{\"definitionHeader\":\"h1\"},\"RequestBody\":{\"message\":\"Hello from Step Functions!\"},\"QueryParameters\":{\"queryParam\":\"q1\"}}",
"result": "{\"Headers\":{\"date\":[\"Tue, 21 Nov 2023 00:06:17 GMT\"],\"access-control-allow-origin\":[\"*\"],\"content-length\":[\"620\"],\"server\":[\"gunicorn/19.9.0\"],\"access-control-allow-credentials\":[\"true\"],\"content-type\":[\"application/json\"]},\"ResponseBody\":{\"args\":{\"QueryParam1\":\"QueryParamValue1\",\"queryParam\":\"q1\"},\"headers\":{\"Authorization\":\"Basic XXXXXXXX\",\"Content-Type\":\"application/json; charset=UTF-8\",\"Customheader1\":\"CustomHeaderValue1\",\"Definitionheader\":\"h1\",\"Host\":\"httpbin.org\",\"Range\":\"bytes=0-262144\",\"Transfer-Encoding\":\"chunked\",\"User-Agent\":\"Amazon|StepFunctions|HttpInvoke|region\",\"X-Amzn-Trace-Id\":\"Root=1-0000000-0000-0000-0000-000000000000\"},\"origin\":\"12.34.567.891\",\"url\":\"https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1\"},\"StatusCode\":200,\"StatusText\":\"OK\"}",
"afterResultSelector": "{\"Headers\":{\"date\":[\"Tue, 21 Nov 2023 00:06:17 GMT\"],\"access-control-allow-origin\":[\"*\"],\"content-length\":[\"620\"],\"server\":[\"gunicorn/19.9.0\"],\"access-control-allow-credentials\":[\"true\"],\"content-type\":[\"application/json\"]},\"ResponseBody\":{\"args\":{\"QueryParam1\":\"QueryParamValue1\",\"queryParam\":\"q1\"},\"headers\":{\"Authorization\":\"Basic XXXXXXXX\",\"Content-Type\":\"application/json; charset=UTF-8\",\"Customheader1\":\"CustomHeaderValue1\",\"Definitionheader\":\"h1\",\"Host\":\"httpbin.org\",\"Range\":\"bytes=0-262144\",\"Transfer-Encoding\":\"chunked\",\"User-Agent\":\"Amazon|StepFunctions|HttpInvoke|region\",\"X-Amzn-Trace-Id\":\"Root=1-0000000-0000-0000-0000-000000000000\"},\"origin\":\"12.34.567.891\",\"url\":\"https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1\"},\"StatusCode\":200,\"StatusText\":\"OK\"}",
"afterResultPath": "{\"Headers\":{\"date\":[\"Tue, 21 Nov 2023 00:06:17 GMT\"],\"access-control-allow-origin\":[\"*\"],\"content-length\":[\"620\"],\"server\":[\"gunicorn/19.9.0\"],\"access-control-allow-credentials\":[\"true\"],\"content-type\":[\"application/json\"]},\"ResponseBody\":{\"args\":{\"QueryParam1\":\"QueryParamValue1\",\"queryParam\":\"q1\"},\"headers\":{\"Authorization\":\"Basic XXXXXXXX\",\"Content-Type\":\"application/json; charset=UTF-8\",\"Customheader1\":\"CustomHeaderValue1\",\"Definitionheader\":\"h1\",\"Host\":\"httpbin.org\",\"Range\":\"bytes=0-262144\",\"Transfer-Encoding\":\"chunked\",\"User-Agent\":\"Amazon|StepFunctions|HttpInvoke|region\",\"X-Amzn-Trace-Id\":\"Root=1-0000000-0000-0000-0000-000000000000\"},\"origin\":\"12.34.567.891\",\"url\":\"https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1\"},\"StatusCode\":200,\"StatusText\":\"OK\"}",
"request": {
"protocol": "https",
"method": "GET",
"url": "https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1",
"headers": "[definitionHeader: h1, Authorization: Basic XXXXXXXX, CustomHeader1: CustomHeaderValue1, User-Agent: Amazon|StepFunctions|HttpInvoke|region, Range: bytes=0-262144]",
"body": "{\"message\":\"Hello from Step Functions!\",\"BodyKey1\":\"BodyValue1\"}"
},
"response": {
"protocol": "https",
"statusCode": "200",
"statusMessage": "OK",
"headers": "[date: Tue, 21 Nov 2023 00:06:17 GMT, content-type: application/json, content-length: 620, server: gunicorn/19.9.0, access-control-allow-origin: *, access-control-allow-credentials: true]",
"body": "{\n \"args\": {\n \"QueryParam1\": \"QueryParamValue1\", \n \"queryParam\": \"q1\"\n }, \n \"headers\": {\n \"Authorization\": \"Basic XXXXXXXX\", \n \"Content-Type\": \"application/json; charset=UTF-8\", \n \"Customheader1\": \"CustomHeaderValue1\", \n \"Definitionheader\": \"h1\", \n \"Host\": \"httpbin.org\", \n \"Range\": \"bytes=0-262144\", \n \"Transfer-Encoding\": \"chunked\", \n \"User-Agent\": \"Amazon|StepFunctions|HttpInvoke|region\", \n \"X-Amzn-Trace-Id\": \"Root=1-0000000-0000-0000-0000-000000000000\"\n }, \n \"origin\": \"12.34.567.891\", \n \"url\": \"https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1\"\n}\n"
}
},
"status": "SUCCEEDED"
}
Exemplo 4: Usar o utilitário jq para filtrar e imprimir a resposta exibida pela API TestState
A API TestState exibe dados JSON como strings de escape na resposta. O exemplo de AWS CLI a seguir estende o Exemplo 3 e usa o utilitário jq para filtrar e imprimir a resposta HTTP que a API TestState exibe em um formato legível. Para obter informações sobre o jq e instruções de instalação, consulte jq
aws stepfunctions test-state \
--definition '{"Type": "Task", "Resource": "arn:aws:states:::http:invoke", "Parameters": {"Method": "GET", "Authentication": {"ConnectionArn": "arn:aws:events:region:account-id:connection/MyConnection/0000000-0000-0000-0000-000000000000"}, "ApiEndpoint": "https://httpbin.org/get", "Headers": {"definitionHeader": "h1"}, "RequestBody": {"message": "Hello from Step Functions!"}, "QueryParameters": {"queryParam": "q1"}}, "End": true}' \
--role-arn arn:aws:iam::account-id:role/myRole \
--inspection-level TRACE \
--reveal-secrets \
| jq '.inspectionData.response.body | fromjson'
O exemplo a seguir mostra a saída exibida em formato legível.
{
"args": {
"QueryParam1": "QueryParamValue1",
"queryParam": "q1"
},
"headers": {
"Authorization": "Basic XXXXXXXX",
"Content-Type": "application/json; charset=UTF-8",
"Customheader1": "CustomHeaderValue1",
"Definitionheader": "h1",
"Host": "httpbin.org",
"Range": "bytes=0-262144",
"Transfer-Encoding": "chunked",
"User-Agent": "Amazon|StepFunctions|HttpInvoke|region",
"X-Amzn-Trace-Id": "Root=1-0000000-0000-0000-0000-000000000000"
},
"origin": "12.34.567.891",
"url": "https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1"
}
Testar e depurar o fluxo de dados de entrada e de saída.
A API TestState é útil para testar e depurar os dados que fluem pelo fluxo de trabalho. Esta seção fornece alguns conceitos-chave e explica como usar o TestState para essa finalidade.
Principais conceitos
No Step Functions, o processo de filtrar e manipular dados JSON à medida que eles passam pelos estados na máquina de estado é chamado de processamento de entrada e de saída. Para obter informações sobre como isso funciona, consulte Processar entrada e saída no Step Functions.
Todos os tipos de estado no Amazon States Language (ASL) (Tarefa, Paralelo, Mapa, Aprovar, Aguardar, Escolha, Êxito e Falha) compartilham um conjunto de campos comuns para filtrar e manipular os dados JSON que passam por eles. Esses campos são: InputPath, Parâmetros, ResultSelector, Especificar a saída de estado usando ResultPath no Step Functions e Filtrar a saída de estado usando OutputPath. O suporte para cada campo varia de acordo com os estados
A lista a seguir descreve a ordem de aplicação dos campos de processamento de entrada e de saída mostrados no diagrama.
-
A entrada de estado são os dados JSON transmitidos para o estado atual a partir de um estado anterior.
-
O InputPath filtra uma parte da entrada de estado bruto.
-
O Parâmetros configura o conjunto de valores a serem passados para a Tarefa.
-
A tarefa executa o trabalho e exibe um resultado.
-
O ResultSelector seleciona um conjunto de valores a ser excluído do resultado da tarefa.
-
O Especificar a saída de estado usando ResultPath no Step Functions combina o resultado com a entrada de estado bruto ou substitui o resultado por ela.
-
O Filtrar a saída de estado usando OutputPath filtra uma parte da saída para passar para o próximo estado.
-
A entrada de estado são os dados JSON transmitidos do estado atual para o próximo estado.
Esses campos de processamento de entrada e de saída são opcionais. Se você não usar nenhum desses campos na definição do estado, a tarefa consumirá a entrada do estado bruto e exibirá o resultado da tarefa como a saída do estado.
Usar TestState para inspecionar o processamento de entrada e de saída
Ao chamar a API TestState e definir o parâmetro inspectionLevel como DEBUG, a resposta da API incluirá um objeto chamado inspectionData. Esse objeto contém campos para ajudar a inspecionar como os dados foram filtrados ou manipulados no estado durante a execução. O exemplo a seguir mostra o objeto inspectionData para o estado de Tarefa.
"inspectionData": {
"input": string,
"afterInputPath": string,
"afterParameters": string,
"result": string,
"afterResultSelector": string,
"afterResultPath": string,
"output": string
}
Neste exemplo, cada campo que contém o prefixo after mostra os dados após a aplicação de um campo específico. Por exemplo, afterInputPath mostra o efeito da aplicação do campo InputPath para filtrar a entrada de estado bruto. O diagrama a seguir associa cada campo Definição de ASL ao campo correspondente no objeto inspectionData:
Para ver exemplos de uso da API TestState para depurar o processamento de entrada e de saída, consulte o seguinte: