Archive for the ‘Globo Vídeos’ Category

Testes de aceitação automáticos para Flash com T-Plan Robot (VNCRobot)

Wednesday, October 28th, 2009

Finalmente, conseguiremos resolver um problema que há quase 2 anos assombra alguns desenvolvedores da globo.com, incluindo eu mesmo. Encontramos uma ferramenta de testes de aceitação automático flexível, open source, gratuita, black box e bem documentada, para testar SWF.

O T-Plan Robot é um VNC client, e pode se conectar a um computador remoto através da rede, controlando os inputs de mouse e teclado programaticamente, e implementa testes baseados em imagens, o que o torna flexível o suficiente para testar não apenas SWFs, mas qualquer outro tipo de aplicação com interface gráfica.

A ferramenta grava scripts, a partir da navegação do usuário pela interface no sistema operacional (bem parecido com que o Selenium faz, por exemplo, usando um plugin Firefox), em seu script próprio ou em Java, como o que eu fiz abaixo:


/**
 * Generated on Tue Oct 27 21:39:52 BRST 2009
 * T-Plan Robot v2.0.Beta (Build No. 2.0.Beta-20091014.1)
 * Default Java Converter version 2.0.0
 */
package teste;

import com.tplan.robot.ApplicationSupport;
import com.tplan.robot.AutomatedRunnable;
import com.tplan.robot.scripting.
	DefaultJavaTestScript;
import com.tplan.robot.scripting.JavaTestScript;
import java.awt.Point;
import java.io.File;
import java.io.IOException;

public class MyTest extends DefaultJavaTestScript
	implements JavaTestScript {

	public void test() {
		try {
			// Mouse move to=x:43,y:30 wait=200
			mouseMove(new Point(43, 30), "200");
			// Mouse click to=x:43,y:30 wait=1100
			mouseClick(new Point(43, 30), "1100");
			// Compareto "tela.bmp"
			compareTo(new File[] {
					new File("tela.bmp") });
			// Mouse click to=x:190,y:116
			mouseClick(new Point(190, 116));
		} catch (IOException ex) {
			ex.printStackTrace();
		}

	}

	public static void main(String args[]) {
		MyTest test = new MyTest();
		ApplicationSupport robot =
			new ApplicationSupport();
		AutomatedRunnable t = robot.
			createAutomatedRunnable(test, "javatest",
				new String[] { "–connect",
					"10.2.66.72:5902", "–password",
						"globocom" }, System.out,
						false);
		new Thread(t).start();
	}
}

Com isso, é possível integrá-lo à sua suite de testes automatizados!

Ainda levaremos um certo tempo para estudar a extensa documentação e aprender a tirar o máximo do T-Plan Robot. A partir de agora, iniciaremos o esforço de rodar testes do nosso player em vários sistemas operacionais virtualizados, com várias versões de Flash Player. Isso sem dúvida resultará em um aumento substancial da quantidade de entregas relacionadas ao player, já que eliminará o enorme tempo gasto atualmente com testes manuais e nos dará confiança.

Agradeço em nome de todos nós especialmente ao Carlo “zED” Caputo por ter perseguido junto conosco a solução desse problema e ter sugerido experimentarmos essa ferramenta para implementação dos testes no nosso player de vídeo Flash, e também ao Tiago Motta, por ter sido bem insistente em me passar os testes preliminares do T-Plan Robot, que eu finalmente pude terminar hoje. O próprio zED, em 2007, em apenas um dia, implementou uma ferramenta com o mesmo propósito e princípio. Infelizmente, apesar da excelente iniciativa, não recebeu apoio para amadurecê-la e interrompeu o projeto. Na época, ele já conhecia o T-Plan Robot, mas ainda não atendia a nossa necessidade.

Módulo Nginx para seek em vídeos H.264

Friday, April 24th, 2009

nginx logo O José Peleteiro comentou comigo hoje a respeito de um módulo de seek de vídeo H.264 progressive download para o Nginx (pronuncia-se ‘engine X’). Fiz um teste deste módulo, o mod_mp4_streaming_lite, com vídeos transcodificados com o profile usado atualmente na plataforma de vídeos da globo.com. O teste foi feito com a versão pública do módulo - distribuída com a licença GNU - compilado com a versão 0.7.21 do Nginx, bem como com a versão 2, esta compilada com a versão mais recente do Nginx, a 0.7.52. A versão 2, além de ser oferecida para outros servers, como o Apache, Lighttpd e inacreditavelmente IIS, é capaz de trabalhar com uma variedade maior de arquivos de vídeo mp4. Para ir a um dado momento do vídeo, basta passar o parâmetro ’start’ na URI com o instante desejado em segundos:

wget "http://h264.code-shop.com:8080/trailer2.mp4"
wget "http://h264.code-shop.com:8080/trailer2.mp4?start=45.5"

O seek funcionou com ambas as versões do módulo para os vídeos da globo.com.

Globo Vídeos para iPhone/iPod touch

Friday, September 26th, 2008

Globo Vídeos iPhoneÉ com orgulho que anuncio, no dia do lançamento do iPhone no Brasil, o lançamento da versão iPhone/iPod touch do Globo Vídeos.

A infraestrutura e o site estavam prontos desde maio e o seu desenvolvimento se deu em aproximadamente 1 mês pela nossa equipe agile de Tecnologia WebMedia. Além de oferecer vídeos no formato H.264 para o QuickTime, o site apresenta uma interface otimizada para o Safari Mobile, aproveitando vários recursos legais desses dispositivos.

Além disso, possibilitamos que iPhones/iPods toquem vídeos nas versões clássicas dos sites que possuem o nosso player embed, incluindo o Globo Vídeos. Como o Safari Mobile não suporta Flash, quando acessado a partir de um desses dispositivos, o nosso player agora é exibido em uma versão não-Flash, servindo formato de vídeo H.264 em vez do flv normalmente oferecido.

Globo Vídeos

Selenium IDE && ( XPather || Firebug )

Wednesday, May 7th, 2008

Neste post inaugural, vamos demonstrar uma maneira de facilitar o trabalho de implementar testes de aceitação automatizados usando a extension Firefox Selenium IDE. Para ilustrar, tente fazer com o Selenium algum tipo de ação ou asserção sobre algum dos links da parte inferior do site www.google.com, por exemplo. Basicamente, há duas opções neste caso: ou clicar no link (com o botão direito ou esquerdo do mouse) para registrar uma ação/asserção, o que faz com que o Selenium automaticamente escreva um trecho de script, ou você pode escrever o script na mão. A primeira opção tem uma desvantagem: o Selenium poderá gravar como identificador do link o texto do link. Se o texto deste link mudar freqüentemente no site, você não vai querer identificá-lo desta maneira. A segunda opção sempre permite que você faça essa identificação pelo posicionamento desse elemento na árvore DOM do documento, por XPath.

No screencast abaixo, vamos demonstrar como o uso de duas outras extensions Firefox, o XPather e o Firebug, ajudam a descobrir rapidamente os XPaths dos elementos ao escrever os scripts.

Obs.: É necessário acrescentar uma barra (/) no início do XPath gerado para que o Selenium entenda.

P.S.: o Firebug é indispensável para uma infinidade de outras coisas. Portanto, se você gostar do XPather, mantenha as duas extensions instaladas. ;)