QA@IT

SikuliX1.1.4に同梱のRobot FrameworkでLog.htmlにTake Screenshotのイメージが埋め込まれない

7433 PV

概要

SikulixにバンドルされているRobot Frameworkをつかっています。

テストケース(.robot)内にスクリーンショットを取得するキーワード(Take Screenshot)を記述すれば

Log.html内にテスト結果とともに
画面イメージが埋め込まれるはずなのですが、
埋め込まれずに困っています。

同様の事象は関連サイトにもあり、対処方法も実施しているのですが
デバッグコードを入れたところ、原因が異なっているようで
どうすれば埋め込まれるようになるのか困っているところです。

原因、対処についてご存じの方がいらっしゃいましたら、ご教示ください。

環境

  • Windows7 Enterprise 64bit
  • SikuliX 1.1.4
  • Robot Framework(SikuliX 1.1.4にバンドルされているもの)
  • Python 2.7.1(SikuriX 1.1.4にバンドルされているもの)
  • SikulixIDE 1.1.4

やったこと

-ソースコード

Robot_Run_01.sikuli/sample.robot(robotのスクリプト)


*** Variables ***

*** Settings ***
Library  OperatingSystem
Library  TestLib.sikuli/TestLib.py
Library  Screenshot  ${OUTPUT DIR}   width=640px

*** Test Cases ***
テストケース1
    スクリーンショットを撮る ${TEST NAME}_Before
    電卓を表示する
    スクリーンショットを撮る ${TEST NAME}_After

*** Keywords ***
電卓を表示する
  open_calc

スクリーンショットを撮る ${NAME}
  Take Screenshot   ${NAME}

TestLib.sikuli/Testlib.py(計算機の起動を待つ、簡単なSikuliスクリプト)

# coding: utf-8
from sikuli import *
# from __future__ import with_statement

class TestLib(object):
    def open_calc(self):
        self.calc = App.open("calc")
        wait("1536568964767.png",1)

Robot_Run_01.sikuli/Robot_Run_01.py(Robotを起動するスクリプト。SikulixIDEから実行)

from threading import currentThread

prepareRobot()
workdir = getBundleFolder()

testdata = "sample.robot"

datasource = os.path.join(workdir,testdata)

# Log.htmlに画像が埋め込まれない現象の対処のため
# 下記サイトを参考にThead名を明示的に指定➡解消せず
# https://groups.google.com/forum/#!topic/rfw-users-jp/Z3YaEGgz3Wk
# https://answers.launchpad.net/sikuli/+question/294598
currentThread().name = 'MainThread'

robot.run(datasource,outputdir=workdir)

- 実行結果

(** SikulixIDE **)

SikuliXIDE.png

(Log.html) 画像が埋め込まれるはずが、埋め込まれない

Log_html.png

ためしたこと

  • Thread名を明示的に指定した ここここを見て、Thread名が"Mainthead"または"RobotFrameworkTimeoutThread"以外だと logが呼ばれないということだったので、robot.run()をコールする前にThread名を明示的に指定したが改善されなかった。
  • Debug用にコードを入れて状態を確認 改善されなかったため、念のためデバッグコードを入れ、Thread名を確認したが、期待通りMainthreadになっていた。

(** librarylogger.py **)

librarylogger_py.png

Output.xmlでは期待通り"MainThread"となっている(画像へのリンクは埋め込まれている・・)
(** output.xml**)

output_xml.png

回答

原因がわかったわけではありませんが、Sikurix1.1.4に同梱のRobot Framework3.0を最新の3.0.4に置き換えることでやりたいことができるようになりました。

具体的には
C:\Users\ユーザ名\AppData\Roaming\Sikulix\Lib\robot
の中身をすべて入れかえたら問題が解消しました。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。