Por que TestMace é melhor que Postman

Por que TestMace é melhor que Postman

Olá a todos, aqui está TestMace! Talvez muitas pessoas saibam sobre nós desde nossa anterior artigos. Para quem acabou de aderir: estamos desenvolvendo um IDE para trabalhar com a API TestMace. A pergunta mais frequente ao comparar o TestMace com produtos concorrentes é “Como você é diferente do Postman?” Decidimos que era hora de dar uma resposta detalhada a esta pergunta. Abaixo descrevemos nossas vantagens sobre Postman.

Dividindo em nós

Se você trabalha com Postman, sabe que a interface de solicitação contém todas as funcionalidades necessárias. Existem scripts, testes e, na verdade, as próprias solicitações. Isso facilita para iniciantes, mas em cenários grandes essa abordagem não é flexível. E se você quiser criar várias consultas e agregá-las? E se você quiser executar um script sem uma solicitação ou vários scripts separados logicamente seguidos? Afinal, é uma boa ideia separar os testes dos scripts utilitários regulares. Além disso, a abordagem “adicionar todas as funcionalidades em um nó” não é escalonável – a interface fica rapidamente sobrecarregada.

TestMace inicialmente divide todas as funcionalidades em diferentes tipos de nós. Gostaria de fazer um pedido? Isso é pra você etapa de solicitação nó Você quer escrever um roteiro? Isso é pra você escrita nó Precisa de testes? Por favor - afirmação nó Ah, sim, você ainda pode encerrar tudo isso em dobrador nó E tudo isso pode ser facilmente combinado entre si. Esta abordagem não só é muito flexível, mas também, de acordo com o princípio da responsabilidade única, permite-lhe utilizar apenas o que realmente necessita no momento. Por que preciso de scripts e testes se quero apenas fazer uma solicitação?

Formato de projeto legível por humanos

Há uma diferença conceitual entre TestMace e Postman na forma como são armazenados. No Postman, todas as solicitações são armazenadas em algum lugar do armazenamento local. Se houver necessidade de compartilhar solicitações entre vários usuários, você precisará usar a sincronização integrada. Na verdade, esta é uma abordagem geralmente aceita, mas tem suas desvantagens. E quanto à segurança dos dados? Afinal, a política de algumas empresas pode não permitir o armazenamento de dados com terceiros. No entanto, achamos que TestMace tem algo melhor a oferecer! E o nome dessa melhoria é “formato de projeto legível por humanos”.

Comecemos pelo fato de que no TestMace, em princípio, existe uma entidade “projeto”. E o aplicativo foi desenvolvido inicialmente com o objetivo de armazenar projetos em sistemas de controle de versão: a árvore do projeto é projetada quase um a um na estrutura do arquivo, o yaml é usado como formato de armazenamento (sem colchetes e vírgulas extras) e o a representação do arquivo de cada nó é descrita detalhadamente na documentação com comentários. Mas na maioria dos casos você não vai procurar lá - todos os nomes de campos têm nomes lógicos.

O que isso dá ao usuário? Isso permite alterar o fluxo de trabalho da equipe com muita flexibilidade, usando abordagens familiares. Por exemplo, os desenvolvedores podem armazenar um projeto no mesmo repositório do back-end. Nas filiais, além de alterar a própria base de código, o desenvolvedor pode corrigir scripts de consultas e testes existentes. Depois de confirmar as alterações no repositório (git, svn, mercurial - o que você preferir), o CI (seu favorito, não imposto por ninguém) inicia nosso utilitário de console testmace-cli, e o relatório recebido após a execução (por exemplo, no formato junit, que também é compatível com testmace-cli) é enviado ao sistema apropriado. E a questão de segurança acima mencionada não é mais um problema.

Como você pode ver, TestMace não impõe seu ecossistema e paradigma. Em vez disso, cabe facilmente nos processos estabelecidos.

Variáveis ​​Dinâmicas

TestMace segue o conceito sem código: se um problema pode ser resolvido sem usar código, tentamos oferecer esta oportunidade. Trabalhar com variáveis ​​é exatamente o tipo de funcionalidade que na maioria dos casos você pode fazer sem programação.

Exemplo: recebemos uma resposta do servidor e queremos salvar parte da resposta em uma variável. No Postman, em um script de teste (o que é estranho por si só), escreveríamos algo como:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);

Mas, em nossa opinião, escrever um script para um cenário tão simples e usado com frequência parece redundante. Portanto, no TestMace é possível atribuir um pedaço da resposta a uma variável utilizando a interface gráfica. Veja como é simples:

Por que TestMace é melhor que Postman

E agora a cada solicitação essa variável dinâmica será atualizada. Mas você pode objetar, argumentando que a abordagem do Postman é mais flexível e permite não apenas fazer uma tarefa, mas também realizar algum pré-processamento. Veja como modificar o exemplo anterior:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));

Bem, para este propósito TestMace tem escrita nó, que cobre este cenário. Para reproduzir o caso anterior, mas já executado pelo TestMace, é necessário criar um nó de script seguindo a solicitação e utilizar o seguinte código como script:

const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));

Como você pode ver, a composição dos nós também serviu bem aqui. E para um caso tão simples como descrito acima, você pode simplesmente atribuir a expressão ${crypto.MD5($response.data)} variável criada através da GUI!

Criando testes via GUI

Postman permite criar testes escrevendo scripts (no caso do Postman, é JavaScript). Esta abordagem tem muitas vantagens – flexibilidade quase ilimitada, disponibilidade de soluções prontas, etc.

Porém, muitas vezes a realidade é tal (não somos assim, a vida é assim) que um testador não tem habilidades de programação, mas gostaria de trazer benefícios para a equipe neste momento. Para tais casos, seguindo o conceito no-code, TestMace permite criar testes simples através de uma GUI sem recorrer à escrita de scripts. Aqui está, por exemplo, como é o processo de criação de um teste que compara valores de igualdade:

Por que TestMace é melhor que Postman

Entretanto, criar testes em um editor gráfico não elimina a possibilidade escrevendo testes em código. Todas as mesmas bibliotecas estão aqui como no nó de script, e chai para escrever testes.

Muitas vezes surgem situações em que uma determinada consulta ou mesmo um script inteiro precisa ser executado diversas vezes em diferentes partes do projeto. Um exemplo de tais solicitações poderia ser a autorização personalizada em vários estágios, trazendo o ambiente para o estado desejado, etc. Em geral, falando em termos de linguagens de programação, gostaríamos de ter funções que pudessem ser reaproveitadas em diferentes partes da aplicação. No TestMace esta função é executada por link nó É muito simples de usar:
1) crie uma consulta ou script
2) crie um nó do tipo Link
3) nos parâmetros especifique um link para o script criado na primeira etapa

Em uma versão mais avançada, você pode especificar quais variáveis ​​dinâmicas do script serão passadas para um nível superior em relação ao link. Parece confuso? Digamos que criamos uma pasta com o nome criar-post, dentro do qual uma variável dinâmica é atribuída a este nó postId. Agora no nó Link criar-post-link você pode especificar explicitamente que a variável postId atribuído a um ancestral criar-post-link. Este mecanismo (novamente, em linguagem de programação) pode ser usado para retornar um resultado de uma “função”. Em geral, é legal, o DRY está em pleno andamento e, novamente, nenhuma linha de código foi danificada.

Por que TestMace é melhor que Postman

Quanto ao Postman, há uma solicitação de recurso para reutilizar solicitações pendurado desde 2015, e parece que há até algumas dicasque eles estão trabalhando neste problema. Em sua forma atual, o Postman, é claro, tem a capacidade de alterar o thread de execução, o que, em teoria, provavelmente torna possível implementar um comportamento semelhante, mas isso é mais um truque sujo do que uma abordagem verdadeiramente funcional.

Outras diferenças

  • Maior controle sobre o escopo das variáveis. O menor escopo dentro do qual uma variável pode ser definida no Postman é a coleção. TestMace permite definir variáveis ​​para qualquer consulta ou pasta. No Postman Share a coleção permite exportar apenas coleções, enquanto no TestMace o compartilhamento funciona para qualquer nó
  • TestMace suporta cabeçalhos herdáveis, que pode ser substituído em consultas filhas por padrão. Postman tem algo sobre isso: a tarefa, e até está fechado, mas é oferecido como solução... usar scripts. No TestMace, tudo isso é configurado através da GUI e há uma opção para desabilitar opcionalmente cabeçalhos herdados em descendentes específicos
  • Desfazer refazer. Funciona não apenas na edição de nós, mas também na movimentação, exclusão, renomeação e outras operações que alteram a estrutura do projeto
  • Os arquivos anexados às solicitações passam a fazer parte do projeto e são armazenados com ele, estando perfeitamente sincronizados, ao contrário do Postman. (Sim, você não precisa mais selecionar arquivos manualmente sempre que iniciar e transferi-los para colegas em arquivos)

Recursos que já estão a caminho

Não resistimos à tentação de levantar o véu do sigilo sobre os próximos lançamentos, principalmente quando a funcionalidade é muito saborosa e já está em polimento pré-lançamento. Então, vamos nos encontrar.

funções

Como você sabe, o Postman usa as chamadas variáveis ​​dinâmicas para gerar valores. A lista deles é impressionante e a grande maioria das funções é usada para gerar valores falsos. Por exemplo, para gerar um email aleatório você precisa escrever:

{{$randomEmail}}

Porém, por se tratarem de variáveis ​​(embora dinâmicas), não podem ser utilizadas como funções: não são parametrizáveis, portanto não será possível extrair um hash de uma string.

Planejamos adicionar funções “honestas” ao TestMace. Logo dentro de ${} será possível não só acessar uma variável, mas também chamar uma função. Aqueles. se você precisar gerar o notório e-mail falso, simplesmente escreveremos

${faker.internet.email()}

Além de ser uma função, você notará que é possível chamar um método em um objeto. E em vez de uma grande lista simples de variáveis ​​dinâmicas, temos um conjunto de objetos agrupados logicamente.

E se quisermos calcular o hash de uma string? Facilmente!

${crypto.MD5($dynamicVar.data)}

Você notará que pode até passar variáveis ​​como parâmetros! Neste ponto, um leitor curioso pode suspeitar que algo está errado...

Usando JavaScript em Expressões

... E por um bom motivo! Quando os requisitos para funções estavam sendo formados, de repente chegamos à conclusão de que javascript válido deveria ser escrito em expressões. Então agora você está livre para escrever expressões como:

${1 + '' + crypto.MD5('asdf')}

E tudo isso sem scripts, direto nos campos de entrada!

Quanto ao Postman, aqui você só pode usar variáveis, e quando você tenta escrever a menor expressão, o validador xinga e se recusa a calculá-la.

Por que TestMace é melhor que Postman

Preenchimento automático avançado

Atualmente TestMace tem um preenchimento automático padrão parecido com este:

Por que TestMace é melhor que Postman

Aqui, além da linha de preenchimento automático, é indicado a que esta linha pertence. Este mecanismo só funciona em expressões entre colchetes ${}.

Como você pode ver, foram adicionados marcadores visuais que indicam o tipo de variável (por exemplo, string, número, array, etc.). Você também pode alterar os modos de preenchimento automático (por exemplo, você pode selecionar o preenchimento automático com variáveis ​​ou cabeçalhos). Mas mesmo isso não é o mais importante!

Primeiro, o preenchimento automático funciona mesmo em expressões (quando possível). Isto é o que parece:

Por que TestMace é melhor que Postman

E em segundo lugar, o preenchimento automático agora está disponível em scripts. Dê uma olhada em como funciona!

Por que TestMace é melhor que Postman

Não faz sentido comparar essa funcionalidade com o Postman - o preenchimento automático é limitado apenas a listas estáticas de variáveis, cabeçalhos e seus valores (corrija-me se esqueci alguma coisa). Os scripts não são preenchidos automaticamente :)

Conclusão

Outubro marcou um ano desde o início do desenvolvimento do nosso produto. Durante esse período, conseguimos fazer muitas coisas e, em alguns aspectos, alcançamos nossos concorrentes. Mas seja como for, nosso objetivo é criar uma ferramenta verdadeiramente conveniente para trabalhar com APIs. Ainda temos muito trabalho pela frente, aqui está um plano aproximado para o desenvolvimento do nosso projeto para o próximo ano: https://testmace.com/roadmap.

Seu feedback nos permitirá navegar melhor pela abundância de recursos, e seu apoio nos dará força e confiança de que estamos fazendo a coisa certa. Acontece que hoje é um dia importante para o nosso projeto - o dia em que o TestMace foi publicado no ProductHunt. Por favor, apoie nosso projeto, é muito importante para nós. Além disso, há hoje uma oferta tentadora na nossa página PH, e é limitada

Fonte: habr.com

Adicionar um comentário