CentOS7.4 リリース【2017/09/14】

CentOS7.4がリリースされました!!

f:id:adakkuma:20170922230336j:plain

 

CentOS 7.0.1406 リリースノート

※日本語訳されたリリースノートあったんですね。

 

またもや、logwatchで大量のパッケージアップデート報告メールが来たので、それで気づきましたね。。

ひとまず、影響の少ないサーバからCentOS7.4にアップデートして、徐々に更新していきましょうかね。

 

では

Webブラウザ操作を自動化してみよう

Webアプリのテストを行うとき、Webブラウザからアクセスして操作して動作確認しますが、みなさんはその操作を手動でしていますか?

 

ある程度決まった操作だったりしたら、それを自動化してみたいなぁと思うことはあると思います。

 

同じような操作を手動で行うのが面倒だなぁと感じ、調べてWebブラウザ操作を自動化することができましたので、今回はその方法についてまとめました。

f:id:adakkuma:20170827130236j:plain

 

必要なものは下記になります。

 

今回は、私は Windows 10 上で実現しましたが、上記は LinuxMac 上で提供されているため、ほかのプラットフォームでも実現可能だと思います。

 

手順は下記のとおりです。

 

必要なものを準備

それではまず、必要なものを準備します。

Webブラウザ:Chrome

Google Chromeの公式サイトからダウンロードできます。インストール方法は割愛します。

 

Java用のEclipse

Eclipseの公式サイトからダウンロードできます。Java用のEclipseだとJDKも含んでいるため、別途JDKをインストールする必要もないため便利です。

下記で説明するseleniumの最新はjava8以上でサポートされているので、最新のEclipseを利用します。インストール方法は割愛します。

 

selenium

これが一番重要で、Webブラウザの自動操作を行うためのコアになります。

ライブラリ と Webブラウザのドライバ を取得します。

公式サイトのダウンロードページからダウンロードします。

 ダウンロードページ: http://www.seleniumhq.org/download/

 

まず、ライブラリから

Java版 や C# , Ruby , Python , Javascript(Node) などいろいろなライブラリがありますが、今回は、Java版のものを使います。

上記公式サイトのダウンロードページから Java版のライブラリをダウンロードします。

記事作成日の最新は selenium-java-3.5.2 です。

 

次に、Webブラウザのドライバ

様々なWebブラウザ向けのドライバが提供されていますが、今回は Chromeのものを使います。 

上記公式サイトのダウンロードページから Chromeのドライバをダウンロードします。

記事作成日の最新は 2.31 です。

Windows版は32bit向けしかありませんが、問題ありません。

 

これで必要なものがすべてそろったので、次のステップに進みます。

 

EclipseJava用のProjectを作成

Java版のseleniumを使うため、Java用のProjectを作成します。

 

プロジェクト名 を入力し(例. JavaTestProject)、JavaSE-1.8 が選択しているのを確認し、[完了]ボタンを押してProjectを作成します。

f:id:adakkuma:20170827163929p:plain

 

Project作成後に、先ほどダウンロードしてきたseleniumライブラリとドライバを導入します。

Projectフォルダ直下にlibフォルダを作成し、zip圧縮されたseleniumライブラリを展開したものを格納します。

また、Projectフォルダ直下にdriverフォルダを作成し、zip圧縮されたseleniumドライバを展開したものを格納します。

f:id:adakkuma:20170827164313p:plain

 

seleniumライブラリを関連付けしてきます。

左にあるパッケージ・エクスプローラーから作成したProject上で右クリックを押し、プロパティーを選択すると、Projectのプロパティーウィンドウが表示されます。

Java のビルド・パスを選択し、ライブラリータブを押します。

右に[JAR の追加(J)...]ボタンがあるので、そのボタンをおしてseleniumライブラリを追加します。libフォルダに入っているライブラリも全て追加します。

f:id:adakkuma:20170827164611p:plain

 

Projectの準備は完了しました。次に自動化を行うためのコードを作成します。

 

自動化を行うためのコードを作成

srcフォルダ内に、自動化を行うためのコードを作成していきます。

srcフォルダに適当なパッケージを作成し、そのパッケージ内に、自動化を行うためのファイルを生成します。

(例. パッケージ名:local_test, ファイル名:AutoTest)

f:id:adakkuma:20170827164759p:plain

 

生成したファイルに、自動化を行うためのコードを書いていきます。

以下のサンプルコードは、yahooへアクセスして、idがsearchの文字列が"ウェブ"と一致するかのチェックを行うコードになります。

package local_test;package local_test;

import static org.junit.Assert.*;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class AutoTest {
@BeforeClass
public static void Setup() {
System.setProperty("webdriver.chrome.driver", "./driver/chromedriver.exe");
}

@Test
public void test1() {
WebDriver driver = new ChromeDriver();
driver.get("https://www.yahoo.co.jp");
WebElement elTitle =  driver.findElement(By.id("search"));
assertEquals("ヤフーページが表示されていること。", elTitle.getText(), "ウェブ");
driver.quit();
}
}

 

コードが書けたら、準備完了です。

最後に実行し、Webブラウザ操作が自動化できたか確認してみます。

 

動作確認

Projectにフォーカスを当てて、メニューの"実行" -> "実行" -> "1 JUnit テスト" を選択すると、サンプルソースが実行されます。

f:id:adakkuma:20170827170758p:plain

 

実行すると、自動的にChromeが起動され、Yahooのページへアクセスし一定時間後にChromeが終了すると思います。

ちなみに、assert* 関数を入れているので、JUnitの実行結果も表示されています。

左下の[JUnit]タブを押すと、実行結果を確認できます。

f:id:adakkuma:20170827171135p:plain

 

いかがでしたか。

今回は、少しの関数を使用してWebブラウザ操作を自動化をしてみましたが、ほかにも様々な関数を組み合わせることで、より複雑な動作などを自動化させることもできます。

皆さんもいろいろと試してみてください。

 

では!

Windowsの「ペイント」は無くなりません!!

今日のヤフーニュースの記事の中に、Windowsの「ペイント」が "おさらば" されるという記事が出ており、ほかのネットニュースなどでも話題になっていました。

 

「ペイント」が無くなってしまう!?悲しい・・・、困るなどいろいろな意見が出ておりましたが、厳密に言うと、「ペイント」は無くならないようです!

f:id:adakkuma:20170725221326j:plain

今秋に予定されているウィンドウズ10の大規模アップデート「Fall Creators Update」で削除される、または廃止される機能一覧に「ペイント」も含まれており、廃止予定になっているようです。

Features that are removed or deprecated in Windows 10 Fall Creators Update

 

しかし、その上記サイトの内容をよく確認してみると、「ペイント」は今後はストアアプリから利用可能となり、機能はペイント3Dに統合される という事だそうです。

 

私自身、「ペイント」は ちょっとしたよく使うアプリ(スクリーンショットを編集するなど)だったので、ニュースのタイトルを見た時には、焦りましたがちゃんと確認したら、「ペイント」は無くならないという事であったため、安心です。。。

 

スラドニュースなどでも、時々原文ニュースと和訳されたニュースのニュアンスが違ったり誤訳して間違って伝わったりすることもありますので、落ち着いて情報を認識する必要がありますね。

f:id:adakkuma:20170725221601j:plain