terça-feira, 6 de outubro de 2015

Armazenando JSON no SQL Server

Evoluções no Microsoft SQL Server 2016

Bancos de dados NoSQL são alternativas que geram sentimentos muito além das análises técnicas. Aos defensores dos benefícios do banco de dados relacional, como o SQL Server, o sentimento é de aversão. Aos desenvolvedores de aplicações mobile, e qualquer outra que usa dados em JSON, podem ver o banco de dados NoSQL, como o MongoDb, como uma excelente alternativa.

Fato é que hoje há espaço para ambas opções e a escolha entre um ou outro pode variar de acordo com o tipo de projeto e demanda – a ideia deste post não é explorar os pontos fortes e fracos de cada um.

Ao navegar na internet buscando alguns artigos técnicos, achei este link, sobre a iniciativa da Microsoft de adicionar suporte ao JSON no SQL Server 2016:

As palavras do Jovan Popovic é que suporte ao JSON no Sql Server é a demanda mais votada no Microsoft Connect Site:
“JSON support in SQL server is one of the most highly ranked requests with more than 1000 votes on the Microsoft connect site

O suporte no armazenamento, a princípio, não terá evoluções, utilizando o tipo NVARCHAR. De toda forma há evoluções funcionalidades:

“our choice to start with FOR JSON and OPENJSON is the fact that these functionalities are requested in JSON connect item and probably only things that cannot be easily implemented with CLR”


Outras referências:

Desenvolvedores armazenando JSON

Alguns desenvolvedores já estão buscando algumas soluções para armazenar JSON no Sql Server, com algumas soluções criativas, como estas:

quinta-feira, 1 de outubro de 2015

Automatizando teste de telas com o Selenium

Instalando o Selenium IDE no Firefox

Faça o download do selenium ide para firefox:


Selecione a última versão do plugin (XPI), em 30/9 é a 2.9.0. Ao clicar no link, pode ser exibida uma informação de segurança, clique em permitir, já que confiamos nessa publicação

O Selenium estará disponível para execução através do menu

Utilizando o Selenium IDE para gravação

Abra o Selenium IDE.
Defina a URL Base, do site que irá testar

Garanta que está em modo de gravação, vendo o botão de gravação.

Navegue normalmente no site, utilizando o Firefox, para gerar as ações que deseja automatizar.
Ao terminar, para interromper, clique no mesmo botão de gravação.

Verificações da página (selenese)

É possível fazer uma série de comandos no Selenium (Que são chamados selenese)
Como exemplos:
In selenese, one can test the existence of UI elements based on their HTML tags, test for specific content, test for broken links, input fields, selection list options, submitting forms, and table data among other things. In addition Selenium commands support testing of window size, mouse position, alerts, Ajax functionality, pop up windows, event handling, and many other web-application features.
Tradução:
“In selenese, pode testar a existência de elementos de UI(Interface de Usuário) baseado nas suas tags HTML, testar por conteúdos específicos, testar por links quebrados, campos de entrada (input field), opções no controle de lista de seleção, enviar formulários, e tabela de dados entrou outras coisas. Em adição, comundos Selenium suportam teste de tamanho da janela, posição do mouse, alertas, funcionalidades Ajax, aqbertura de janelas, manipulação de eventos e vários outras funcionalidades de aplicações web. ”
Para utilizar visualmente, clique com o botão direito em qualquer conteúdo da página Web e selecione as opções ao fim do menu de contexto. Há uma opção sugerida e o “Exibir todos os comandos disponíveis”.
Na imagem abaixo foi verificar a existência de um texto em específico em um elemento. É possível localizar elementos de várias maneiras:
  • Localizar por Link e Teste
O Selenium IDE sugere uma localização do elemento, conforme imabem abaixo

 No xpath abaixo, se houver uma mudança do valor, haveria problema no teste.
 
Para isso, iremos fazer o comando ser apenas de seleção, garantindo que ache o elemento. É possível ver uma listagem com todos os comandos disponíveis

Para esse exemplo, iremos utilizar o comando verifyElementPresent com o xpath abaixo e limpar o campo “Valor”, garantindo que o elemento exista, já que o valor nesse caso muda com o tempo.
//div[@class="tile blue"]


É possível fazer teste buscando elementos não visuais, por exemplo, que o arquivo CSS está utilizando uma referência CDN(https://pt.wikipedia.org/wiki/Content_Delivery_Network) na página conforme abaixo:



Referência:

Salvando e Executando o teste

É possível salvar o teste é possível configurar a velocidade (Para reduzir a velocidade para acompanhar a execução a olhando), conforme imagem abaixo:

O resultado é mostrado na barra inferior e com a contagem de sucessos e erros