2019』7日目の記事です。データアナリティクスチームの飯村北海です。Tableauハンズオン」を開催することができました。この準備などに追われてしまい、今年に入ってエンジニアブログを全く書いていない...ということに気づきました。いうことで頑張って12月のアドベントカレンダーで何本か書きたいと思います!と書きましたので2本目です。今日はTableauのテスト自動化について書きたいと思います。Tableauのテスト自動化がしたいエンタープライズ系でもTableauを活用するケースが増えてきたと思いますが、みなさんテストはどうやっていますか?ここで言及する試験、というのはTableauの資格試験のことではなく、単体テスト、結合テスト、総合テストのようなプログラムテストのことを指します。先日、社内でもこのテストをどのようにするのか?について話題が上がりました。私も過去にDBに対してSQLを書いて同じデータが出てくることを確認したりすることがありました。ダッシュボードを開発するのに効率よく試験をしたいという動機付けはきっとみなさんもあると思います(ありますよね?)。実はクレスコのエンジニアブログではテストに関する記事がいくつかあります。DesktopはWindows/Macアプリケーションなのでこれに対するテストは難しそうです。Serverへパブリッシュして、WebアプリケーションとみなしてWebブラウザのテストをする」というやり方で考えれば実現できそうです。IDEを使って試験自動化を考えるということで、Seleniumを使って試験自動化を考えることになります。IDEを使っています。PublicにあるVizに対してテストをする構成でやっていきます。IDEの画面レコーディング機能を使ってダッシュボードに表示されているテキストをクリックし、Verifyなどができるのか?ということで試してみましたが、結論としてはできませんでした。anything).(超訳:ググったけどTableauの自動化ができるかわからない。Serverで表示されるコンテンツはほぼJavaScriptのCanvasで出力されるのでSeleniumでやる場合はあまり適切ではない。Serverで描画される数字はCanvasを使用しているのでクリックしてそのテキストを取得、ということはできないということのようです。APIを使うもちろんそれだけだと面白くないので代替案もあります。Serverに対してVizを操作すればデータを参照することができそうです。APIで作成したもの下記のこういったページを1枚、作成しました。上部で表示したいURLや表示したいシート名、フィルタなどをフィールドに入れて操作すると下のVizのところが変わるようになります。IDEでデータを取得していく流れになります。IDE込みで作成したものこうして出来上がったものがこちらになります。動画GIFでそれっぽく動いていることを確認していただければと思います。ポイントとしては、データを取ってくるところはツールバーの集計表を表示する機能を使用して該当するデータを確認するというところでしょうか。IDEは処理が早かったりするのでポーズコマンドで微調整をしています。Serverで表示している値はCanvasで表示をしているようで、そのままテキストデータの値を取ってくる、ということができないということがわかりました。APIを活用してデータを取って来ることができれば頑張ってテスト自動化ができそうです。クレスコ入社後、旅行/運輸業のJava系Webアプリケーションエンジニアのキャリアを経て、技術研究所に所属。音声認識の実証実験やクラウドベースのデモアプリケーション開発等に従事。LEに関する自社製品のプロダクトマネージャーとしてWebサービスの製品開発に携わる。現在はデータ分析チームに所属。Associate認定資格者。PMI日本支部のアジャイル研究会に所属。趣味は写真とジョギング。