Testes automatizados
de API com
Codeception
Juciellen Cabrera
Agenda
● Pra que serve um teste de API
● Porque fazer testes de API
● Quem é esse Codeception
● O que testar
● Como instalar
● Como criar um teste de API
● Como executar os testes
Quem sou eu?
@jucycabrera
Programadora PHP há quase 10 anos
ZCPE
Instrutora de PHP
jucarol17@gmail.com
Pra que serve uma
API?
API - Application Programming Interface
Interface de Programação de Aplicações
Interface padronizada desenvolvida já com o objetivo de fácil
integração com outras aplicações
Porque fazer testes
de API?
Testar respostas das requisições
Integração contínua
Validar entregas
Quem é esse
Codeception?
http://codeception.com
Framework completo de testes (funcional, aceitação e
integração)
Testes de API
Testa API feita com framework ou não
Tem módulos para testar API REST, SOAP e RPC
Testa respostas em XML ou Json
O que testar?
● Status Code
● Retorno
● Garantir uma mensagem específica
● Verificar retorno de determinado dado
Como instalar o
Codeception
php composer.phar require "codeception/codeception: 2.2.11"
php vendor/bin/codecept
php vendor/bin/codecept bootstrap
http://codeception.com/install
Como criar um teste
de API
php codecept generate:cest api NewTest
http://codeception.com/docs/07-AdvancedUsage
Exemplo de teste de
API
$I = new ApiTester($scenario);
$I->wantTo('create a user via API');
$I->amHttpAuthenticated('service_user', '123456');
$I->haveHttpHeader('Content-Type', 'application/x-www-form-urlencoded');
$I->sendPOST('/users', ['name' => 'davert', 'email' => 'davert@codeception.com']);
$I->seeResponseCodeIs(CodeceptionUtilHttpCode::OK); // 200
$I->seeResponseIsJson();
$I->seeResponseContains('{"result":"ok"}');
http://codeception.com/docs/10-WebServices
Como executar os
testes
php codecept run
php codecept run api
php codecept run tests/api/NewTestCest.php
http://codeception.com/docs/07-AdvancedUsage
● PHP 7.0.15
● Codeception 2.2.11
Dê seu feedback
jucarol17@gmail.com
https://joind.in/talk/b4503

Slides palestra codeception

  • 1.
    Testes automatizados de APIcom Codeception Juciellen Cabrera
  • 2.
    Agenda ● Pra queserve um teste de API ● Porque fazer testes de API ● Quem é esse Codeception ● O que testar ● Como instalar ● Como criar um teste de API ● Como executar os testes
  • 3.
    Quem sou eu? @jucycabrera ProgramadoraPHP há quase 10 anos ZCPE Instrutora de PHP jucarol17@gmail.com
  • 4.
    Pra que serveuma API? API - Application Programming Interface Interface de Programação de Aplicações Interface padronizada desenvolvida já com o objetivo de fácil integração com outras aplicações
  • 5.
    Porque fazer testes deAPI? Testar respostas das requisições Integração contínua Validar entregas
  • 6.
    Quem é esse Codeception? http://codeception.com Frameworkcompleto de testes (funcional, aceitação e integração)
  • 9.
    Testes de API TestaAPI feita com framework ou não Tem módulos para testar API REST, SOAP e RPC Testa respostas em XML ou Json
  • 10.
    O que testar? ●Status Code ● Retorno ● Garantir uma mensagem específica ● Verificar retorno de determinado dado
  • 11.
    Como instalar o Codeception phpcomposer.phar require "codeception/codeception: 2.2.11" php vendor/bin/codecept php vendor/bin/codecept bootstrap http://codeception.com/install
  • 12.
    Como criar umteste de API php codecept generate:cest api NewTest http://codeception.com/docs/07-AdvancedUsage
  • 13.
    Exemplo de testede API $I = new ApiTester($scenario); $I->wantTo('create a user via API'); $I->amHttpAuthenticated('service_user', '123456'); $I->haveHttpHeader('Content-Type', 'application/x-www-form-urlencoded'); $I->sendPOST('/users', ['name' => 'davert', 'email' => 'davert@codeception.com']); $I->seeResponseCodeIs(CodeceptionUtilHttpCode::OK); // 200 $I->seeResponseIsJson(); $I->seeResponseContains('{"result":"ok"}'); http://codeception.com/docs/10-WebServices
  • 17.
    Como executar os testes phpcodecept run php codecept run api php codecept run tests/api/NewTestCest.php http://codeception.com/docs/07-AdvancedUsage
  • 20.
    ● PHP 7.0.15 ●Codeception 2.2.11
  • 21.