swapy-ob

Swapy-ob is a tool for GUI Automation for Windows. Finally you will get native python code for pywinauto module.

Automate in 3 steps:

  1. Select a control.
  2. Choose action by right-click.
  3. Get native python code.

I think...

Window Application에 특화된 Tool 임. Web Automation에 적합하지 않음. 

Web Element 찾기도 쉽지 않음


 

'QA > Test Automation' 카테고리의 다른 글

Selendroid vs Appinum  (0) 2016.03.30
Monkey Talk  (0) 2016.03.30
Swapy-ob For UI Automation  (0) 2016.02.17
PyWinAuto For UI Automation  (0) 2016.02.17
AutoIT For UI Automation  (0) 2016.02.17
Sikuli For UI Automation  (0) 2016.02.17

What is PywinAuto?

 - URL : http://pywinauto.googlecode.com/hg/pywinauto/docs/index.html

 - pywinauto is a set of python modules to automate the Microsoft Windows GUI. At it’s simplest it allows you to send mouse and keyboard actions to windows dialogs and controls.

 - Window의 GUI에 접근하여 마우스,키보드 작업을 자동화할 수 있는 라이브러리이다. 임의의 창을 특정하거나, (없으면 실행하는 것도 가능하다) 창의 모듈을 특정하여 키 입력이나 마우스 입력을 전달하여 사용자가 미리 정의한대로 작업을 자동화하는 것이 가능하

Installation

Install Python 2.7

Source  : http://sourceforge.net/projects/pywinauto/

pywinauto 에서는 win32의 Sendkeys 함수를 이용하는데 그것의 Wrapping python 모듈이 필요함

http://code.google.com/p/sendkeys-ctypes/downloads/detail?name=SendKeys-ctypes-0.2.zip&can=2&q=

환경변수 추가

Path : C:\Python27

pywinauto 모듈 소스가 있는 곳에 가서 설치 

C:\PyWinAuto\pywinauto-0.4.0

> python setup.py install

마찬가지로 sendkeys-ctypes-0.2.zip 도 풀어 설치

C:\PyWinAuto\SendKeys-ctypes-0.2

> python setup.py install

Sample Code

from pywinauto.application import Application


#app = Application.start("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe")
app = Application.start("C:\Program Files (x86)\Internet Explorer\iexplore.exe")
app.window_().TypeKeys({F11})
app.window_().TypeKeys('https://www.yogiyo.co.kr')
time.sleep(5)

Some similar tools for comparison

I think...

Tool 자체가 Web이 아닌 Window에 특화되어 있다는 느낌을 받음

Home Page에 추천하는 툴로 이전에 사용하던 AutoIt이 있어서 적용해볼 예정

 

'QA > Test Automation' 카테고리의 다른 글

Monkey Talk  (0) 2016.03.30
Swapy-ob For UI Automation  (0) 2016.02.17
PyWinAuto For UI Automation  (0) 2016.02.17
AutoIT For UI Automation  (0) 2016.02.17
Sikuli For UI Automation  (0) 2016.02.17
Selenium & Maven  (0) 2016.02.03

AutoIT?

AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate tasks in a way not possible or reliable with other languages (e.g. VBScript and SendKeys).

AutoIt 은 윈도우즈에 특화되어 있는 스크립트 언어로 기존의 스크립트 언어와는 달리 윈도우즈에서 하는 여러 가지 작업을 자동화하기 쉽다.


Features

  1. Easy to learn BASIC-like syntax
  2. Simulate keystrokes and mouse movements
  3. Manipulate windows and processes
  4. Interact with all standard windows controls
  5. Scripts can be compiled into standalone executables
  6. Create Graphical User Interfaces (GUIs)
  7. COM support
  8. Regular expressions
  9. Directly call external DLL and Windows API functions
  10. Scriptable RunAs functions
  11. Detailed helpfile and large community-based support forums
  12. Compatible with Windows XP / 2003 / Vista / 2008 / Windows 7 / 2008 R2 / Windows 8 / 2012 R2
  13. Unicode and x64 support
  14. Digitally signed for peace of mind
  15. Works with Windows Vista’s User Account Control (UAC)

Sample Code

#include <IE.au3>

$url = "https://www.yogiyo.co.kr"
; Active Yogiyo Web
$oIE = _IECreate($url)
$hWnd = _IEPropertyGet($oIE, "hwnd")
WinSetState($hWnd, "", @SW_MAXIMIZE)
_IELoadWait($oIE)
; Input Zip Code Address
$submit = _IEGetObjByName($oIE, "zipcode_or_city")
_IEPropertySet($submit, "innerText", "요기요시 요기요구 요기요동")
Sleep(1000)
_IEFormImageClick($oIE, "search_btn.png", "src")
Sleep(1000)



 

'QA > Test Automation' 카테고리의 다른 글

Swapy-ob For UI Automation  (0) 2016.02.17
PyWinAuto For UI Automation  (0) 2016.02.17
AutoIT For UI Automation  (0) 2016.02.17
Sikuli For UI Automation  (0) 2016.02.17
Selenium & Maven  (0) 2016.02.03
UFT(Unified Functional Testing) Mobile  (0) 2016.02.03

Sikuli

http://www.sikuli.org/

Sikuli automates anything you see on the screen. It uses image recognition to identify and control GUI components. It is useful when there is no easy access to a GUI's internal or source code.

 

Download : https://launchpad.net/sikuli/+download

Installation :

  1. Set JAVA_HOME
  2. execute sikuli-setup.jar

 

장점 :

  • Screen 내에 보이는 모든 것들을 Control 할 수 있다.
  • 하나의 머신에서 테스트 할 땐 용이한다.

단점 :

  • Screen 외의 것들은 MOUSE_UP or MOUSE_DOWN 등으로 접근해서 Control 해야한다.
  • 여러 머신에서 General하게 사용할 수 없다. 약간의 이미지 Miss에도 민감하다.

 

'QA > Test Automation' 카테고리의 다른 글

PyWinAuto For UI Automation  (0) 2016.02.17
AutoIT For UI Automation  (0) 2016.02.17
Sikuli For UI Automation  (0) 2016.02.17
Selenium & Maven  (0) 2016.02.03
UFT(Unified Functional Testing) Mobile  (0) 2016.02.03
Sikuli For UI Automation  (0) 2014.11.27

JAVA 설치 : http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Eclipse 설치 : http://www.eclipse.org/downloads/download.php?file=/oomph/epp/mars/R1a/eclipse-inst-win64.exe

Maven 다운로드 : http://maven.apache.org/download.cgi?Preferred=http%3A%2F%2Fapache.mirror.cdnetworks.com%2F#


Create a Project on Eclipse

File > New > Others > Maven > Maven Project

Check "create a simple project(skip archetype selection)" on New Maven Project

Input Group Id & Artifact Id on New Maven Project

add a project node on pom.xml

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>SeleniumCookbook</groupId>
  <artifactId>SeleniumCookbook</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <dependencies>
    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>2.25.0</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.1</version>
      <scope>test</scope>
    </dependency>  
  </dependencies>
</project>

project name > src/test/java > New > Class > input Name > Finish

Input a test code

package seleniumcookbook.example.test;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
public class GoogleSearchTest {
 protected WebDriver driver;
 private StringBuffer verificationErrors = new StringBuffer();
 
 @Before
 public void setUp() {
  driver = new FirefoxDriver();
  driver.get("http://www.google.com");
 }
 @Test
 public void testGoogleSearch() {
  try {
   // name 속성으로 텍스트 입력 엘리먼트만 찾는다.
   WebElement element = driver.findElement(By.name("q"));
   // 검색어응 입력한다.
   element.sendKeys("Selenium testing tools cookbook");
   // 웹드라이버는 폼 엘리먼트를 찾아 제출한다.
   element.submit();
   (new WebDriverWait(driver, 10)).until
       (new ExpectedCondition<Boolean>() {
    public Boolean apply(WebDriver d) {
     return d.getTitle().toLowerCase().startsWith("selenium testing tools cookbook");
    }
   });
   
   assertEquals("Selenium testing tools cookbook - Google Search", driver.getTitle());
  } catch (Error e) {
   verificationErrors.append(e.toString());
  }
 }
 
 @After
 public void tearDown() throws Exception {
  driver.quit();
  String verificationErrorString = verificationErrors.toString();
  if (!"".equals(verificationErrorString)) {
   fail(verificationErrorString);
  }
  
 }

Runs As > Maven test


Trouble Shooting

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile

Windows -> Preferences -> Java -> Installed JREs -> jdk

JRE 경로가 JAVA 디렉토리에 있는 것이 아닌 JAVA 밑에 JDK 안에 있는 것으로 선택하면 된다.
 

'QA > Test Automation' 카테고리의 다른 글

PyWinAuto For UI Automation  (0) 2016.02.17
AutoIT For UI Automation  (0) 2016.02.17
Sikuli For UI Automation  (0) 2016.02.17
Selenium & Maven  (0) 2016.02.03
UFT(Unified Functional Testing) Mobile  (0) 2016.02.03
Sikuli For UI Automation  (0) 2014.11.27

UFT Mobile은 기존의 Application Test Automation Tool인 UFT/QTP에 Plugin 되어 Mobile Application의 Test Automation까지 가능한 Solution이다.


두 가지 큰 특징이자 장점을 가지는데 

첫번째는 실제 Mobile 단말에서의 Mobile Application 검증이 가능하다는 점이다. Mobile Application의 경우 운영체제가 같더라도 단말기 제조사별 커스터마이징이 들어가면서 모든 단말에서 동일하게 동작한다는 것에 대한 보증을 하기 어려웠다.

두번째는 Test 대상 Mobile 기기를 클리우드 환경에서 구성할 수 있다는 점이다. Mobile Application을 개발하고 Test 하는 동안 실제 단말에서 Debugging이나 Test의 작업이 필요한데, 이때 생기는 문제가 바로 단말기의 관리이다. Test 단말기의 관리가 제대로 되지 않으면, 단말기의 중복 구매, 붐실 등의 이유로 불필요한 비용 및 시간 손실이 생기게 된다. 하지만 Test 대상 단말기를 한 곳에 모아두고, 원격으로 이들에 접근해서 조작할 수 있는 클라우드 환경을 구성하면 Mobile 단말기의 관리가 가능해진다.


UFT Mobile은 UFT/QTP에 통합되어 기존 UFT/QTP 기능을 활용하면서 실제 단말기 상에서의 Mobile Application Test Automation을 가능하게 하는 Solution이다. 또란 ScriptOnce Technology를 통해 하나의 단말기에서 작성한 Script를 다른 기종의 단말기에서 돌릴 수 있는 기능을 제공하여 Auto Test Script의 관리 및 생산성을 향상시켜준다.

 

'QA > Test Automation' 카테고리의 다른 글

PyWinAuto For UI Automation  (0) 2016.02.17
AutoIT For UI Automation  (0) 2016.02.17
Sikuli For UI Automation  (0) 2016.02.17
Selenium & Maven  (0) 2016.02.03
UFT(Unified Functional Testing) Mobile  (0) 2016.02.03
Sikuli For UI Automation  (0) 2014.11.27

Sikuli

Sikuli automates anything you see on the screen. It uses image recognition to identify and control GUI components. It is useful when there is no easy access to a GUI's internal or source code.


Download : https://launchpad.net/sikuli/+download


Installation :

  1. Set JAVA_HOME
  2. execute sikuli-setup.jar


장점 :

  • Screen 내에 보이는 모든 것들을 Control 할 수 있다.
  • 하나의 머신에서 테스트 할 땐 용이한다.

단점 :

  • Screen 외의 것들은 MOUSE_UP or MOUSE_DOWN 등으로 접근해서 Control 해야한다.
  • 여러 머신에서 General하게 사용할 수 없다. 약간의 이미지 Miss에도 민감하다.

'QA > Test Automation' 카테고리의 다른 글

PyWinAuto For UI Automation  (0) 2016.02.17
AutoIT For UI Automation  (0) 2016.02.17
Sikuli For UI Automation  (0) 2016.02.17
Selenium & Maven  (0) 2016.02.03
UFT(Unified Functional Testing) Mobile  (0) 2016.02.03
Sikuli For UI Automation  (0) 2014.11.27

+ Recent posts