Skip to content

Instantly share code, notes, and snippets.

@samlucax
samlucax / README.md
Created August 3, 2017 20:11 — forked from evandrix/README.md
Headless web browsers

Here are a list of headless browsers that I know about:

  • [HtmlUnit][1] - Java. Custom browser engine. JavaScript support/DOM emulated. Open source.
  • [Ghost][2] - Python only. WebKit-based. Full JavaScript support. Open source.
  • [Twill][3] - Python/command line. Custom browser engine. No JavaScript. Open source.
  • [PhantomJS][4] - Command line/all platforms. WebKit-based. Full JavaScript support. Open source.
  • [Awesomium][5] - C++/.Net/all platforms. Chromium-based. Full JavaScript support. Commercial/free.
  • [SimpleBrowser][6] - .Net 4/C#. Custom browser engine. No JavaScript support. Open source.
  • [ZombieJS][7] - Node.js. Custom browser engine. JavaScript support/emulated DOM. Open source.
  • [EnvJS][8] - JavaScript via Java/Rhino. Custom browser engine. JavaScript support/emulated DOM. Open source.
@samlucax
samlucax / pegandoImagem.java
Created August 21, 2017 16:46
Automatizando validação de códigos de barras com API Zxing
File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
BufferedImage imagem = ImageIO.read(screenshot);
//Se você prefere uma imagem só do trecho onde o código de barras aparece, pode realizar um corte na imagem, da seguinte forma:
//Pegando a posicao do elemento
Point posicao = codigoDeBarras.getLocation();
//Pegando altura e largura do elemento
@samlucax
samlucax / .gitconfig
Last active November 24, 2019 00:19 — forked from diego3g/.gitconfig
Git useful aliases
[alias]
ci = commit
co = checkout
cm = checkout master
cd = checkout develop
cb = checkout -b
st = status -sb
sf = show --name-only
lg = log --pretty=format:'%Cred%h%Creset %C(bold)%cr%Creset %Cgreen<%an>%Creset %s' --max-count=30
incoming = !(git fetch --quiet && git log --pretty=format:'%C(yellow)%h %C(white)- %C(red)%an %C(white)- %C(cyan)%d%Creset %s %C(white)- %ar%Creset' ..@{u})
Given text query =
"""
{
pokemon(name: "Pikachu") {
id
attacks {
special {
name
}
}
@samlucax
samlucax / geraDados.js
Last active December 1, 2023 16:14 — forked from willnss/gist:3246637
Gerador de Dados para Postman env
//adicionar eval(environment.geraDados) no início do pré-request
function gera_random(n) {
var ranNum = Math.round(Math.random() * n);
return ranNum;
}
function mod(dividendo, divisor) {
return Math.round(dividendo - (Math.floor(dividendo / divisor) * divisor));
}
Cypress.Commands.add("loggedInAs", uid => {
window.localStorage.setItem("access-token", "jVUfYw92zjFCtGMTZilctw");
window.localStorage.setItem("client", "e_1a0iMA4uG52JMl9f8uog");
window.localStorage.setItem("expiry", "1558352526");
window.localStorage.setItem("token-type", "Bearer");
window.localStorage.setItem("uid", uid);
cy.visit("http://localhost:3001");
});
@samlucax
samlucax / gist:51bfb9cc4fd8f9a57d5bbe3aa1d92fec
Last active May 5, 2020 13:23 — forked from eliasnogueira/gist:5340507
Diferença entre Smoke e Acceptance Test num contexto ágil

by Elias Nogueira

Hoje um colaborador da lista sobre Teste de Software [DFTestes] (http://br.groups.yahoo.com/group/DFTestes/) perguntou em uma thread sobre PhantomJS qual era a difernça entre Smoke Test e Acceptance Test. Ai resolvi responder. Como a lista é somente de acesso aos usuários registrados, estou colocando um resumo, na minha ótica, a diferença entre eles:

Dentro de um contexto ágil nós temos uma separação clara do que é smoke test e o que é teste de aceitação.

  • Smoke Test: conjunto de testes (bem menor do que o conjunto de teste de aceitaçaõ, que vai configurar posteriormente em uma regressão) com o intuito de validar se os pontos maisimportantes da aplicação continuam funcionando após as alterações.

  • Teste de Aceitação: São os testes funcionais que conhecemos. Em um contexto ágil eles são chamados de aceitação ao invés de funcional, pela ótica que adotamos a estes testes, que vão tanto validar a aplicação funcionalmente como validar também da ótica de um usuário (fazer uma venda completa,

pool:
name: Azure Pipelines
#Your build pipeline references the ‘BuildConfiguration’ variable, which you’ve selected to be settable at queue time. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab, and then select the option to make it settable at queue time. See https://go.microsoft.com/fwlink/?linkid=865971
#Your build pipeline references the ‘BuildConfiguration’ variable, which you’ve selected to be settable at queue time. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab, and then select the option to make it settable at queue time. See https://go.microsoft.com/fwlink/?linkid=865971
steps:
- task: DotNetCoreCLI@2
displayName: Restore
inputs:
command: restore
- script: 'npm install'
displayName: install
- script: 'npm test'
displayName: test
continueOnError: true
- task: PublishTestResults@2
displayName: 'Publish Test Results **/test*.xml'
// Sugestão de solução enviada por Vinicius Flores no grupo do Cypress Brasil
describe('Should been possible to validate Update Catalog data in Agena plans table', () => {
before(() => {
cy.fixture('IIYOGI-1517.csv').then(plans => {
lines = plans.split('\n')
})
})
beforeEach(() => {