LoginSignup
8
9

More than 5 years have passed since last update.

SikuliからMongoDBにアクセスする(その1)

Last updated at Posted at 2016-02-02

SikuliからMongoDBにアクセスする。

画像認識でPC操作の自動化ができるSikuli(正式にはSikuliXかもしれませんが、ここではSikuliで統一します)を、GUIテストの自動化なんかに使ってます。
SikuliのソースはPython(実態はJython)で書けるんで、JUnitとか使ってJenkinsから実行したりすれば基本的には満足なんですが、画像認識の弱点として予期せぬ表示状態になったりするとテストが失敗することがあります。
(分かりやすいところでは、勝手に表示されるWindows10への更新を促すダイアログとかね!)
なので、テストは画面イメージとか情報を多めに残しつつ動くようにしていますが、このログの扱いに困ります。

そこで、そういったログをMongoDBに登録する方法を試したいと思います。

ソフト等 バージョン 備考
Windows 10 Pro 64ビット
Java 8 update 71
sikuli 1.1.1 20151126.001204-18(Jython2.7.0)
Java MongoDB Driver 3.0.4

Sikuliのインストール

Sikuliの日本語情報はあまり多くないのと、最近のJava8に入れた情報はないようなので、一応画面も残しておきます。

ここからサポートされてるバージョンが落とせますが、今回はnightlyから最新のsikulixsetup~.jarを落としてC:\sikuliXに配置し、実行しました。

sikuli01.png

Setupダイアログでは、1、2、3にチェックし、「Setup Now」。
(今回はOCR機能使わないから、3は要らないはずですが)

以後いくつかダイアログが出るので、全部「はい」で。

sikuli02.png

インストールが終わると、c:\sikuliXの中にrunsikulix.cmdが出来てますので、これを実行すると次のようにSikuliのIDEが立ち上がります。

sikuli04.png

SikuliでJava MongoDB Driverを使う。

SikuliからMongoDBにつなぐ公式ドライバはありませんが、Sikuliの実態はJythonなのでJava MongoDB Driverで試してみます。
(使ったのは「mongo-java-driver」の方。「mongodb-driver」との違いは良く分かりません)

C:\mongoDB\mongo-java-driverフォルダに、落としたmongo-java-driver-3.0.4.jarを配置して、動作確認として簡単な検索を行ってみます。

mongodb.sikuli
load("C:\mongoDB\mongo-java-driver\mongo-java-driver-3.0.4.jar")
import com.mongodb.MongoClient;

cli = com.mongodb.MongoClient( "s2016tp4" );
db = cli.getDB( "logs" );
coll = db.getCollection("os");
print("Count = %i" % coll.getCount())

d = coll.findOne();
print("TimeStamp = %s" % d.get('TimeStamp'))
print("ComputerName = %s" % d.get('ComputerName'))

赤枠部にコレクションのカウントや検索したデータが表示されました。
(つないでいるデータは、PowerShellからMongoDBにアクセスする。で作ったPowerShellで登録しているデータです。)

sikuli05.png

接続出来ることが確認できましたが、長くなったので今回はここまで。
登録(特に画像)はまた今度。

参考

Sikuliについては日本語情報があまりなく、以下の情報がこれまでの参考になりましたので挙げさせていただきます。

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9