2018年02月01日
昨年 Ranorex ver 7がリリースされました
https://www.ranorex.com/blog/ranorex-7-1-released/
今回のバージョンでSelenium/Appiumがサポートされました。
これまでスマホの実機でWEBのテストはRanorexWebBrowserという、エミュレータでしかテストができなかった。
しかし、今回のバージョンでAppiumをつかうことで実機のスマホにインストールされているブラウザでテストできるようになる。
iOS → Safari 可
Android → Chrome 可
ただ、RanorexにAppiumで実機接続までのマニュアルがあるわけでもなく
構築が大変だった。(Ranorexは非エンジニア向けをモットーにしたはずなのにー)
そのときの構築メモを残す
構築イメージ
用意するもの
- Mac (High Sierra)
- iPhone (iOS 10) → 11はappiumが対応してないっぽい。 safariのWebインスペクタを有効にしておく
- Zenfone3 (Android 6) → USBのでバックモードにしておく
- Ranorex version 7.1.2
- USBケーブル (Macとスマホを接続する)
- apple developer の user (お金を払う必要があります)
Setup for Android
1. android studio
https://developer.android.com/studio/index.html?hl=ja
こちらにアクセスし、android studioを入手しインストールする
2. Java SDK
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
こちらにアクセスし、java SDKの最新を入手、インストールする
コマンドラインで java が実行できることを確認する
3. adb 確認
adb devices を実行し、adb を起動、接続されているandroidデバイスを識別させる
表示されるdevice UDIDはRanorex側で必要になるのでメモっておく
Setup for iOS
1. Xcode 9.2
Xcode をAppStoreからインストールする
一度Xcodeを起動して、”利用同意”をしておく。
コマンドラインでxbuildが実行できるように、以下コマンド実施
xcode-select --
switch
/Applications/Xcode.app
2. brew
brewはパッケージをインストールするツール
下記コマンドを実施してインストール
/usr/bin/ruby -e
"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
参考 https://brew.sh/index_ja.html3. npm
npmもパッケージをインストールするツール
下記コマンドを実施してインストール
brew install nodebrew
nodebrew install-binary latest
このあと、npmが動くかを確認する
npm
なお、パスが通っていないので、それを設定する
export PATH=$PATH:$HOME/.nodebrew/current/bin
参考 https://qiita.com/taketakekaho/items/dd08cf01b4fe86b2e218
4. library
関連しそうなものを以下コマンドでインストールする
brew install libtool
brew cask install xquartz
brew install automake
brew install pkg-config
5. appiumにかかわるもの
関連しそうなものを以下コマンドでインストールする
6. appium
以下コマンドでインストールする
5. appiumにかかわるもの
関連しそうなものを以下コマンドでインストールする
brew install ios-webkit-debug-proxy
brew install ideviceinstaller
brew install carthage
npm install -g ios-deploy
npm install -g deviceconsole
gem install xcpretty
brew upgrade libimobiledevice --HEAD
npm install -g authorize-ios
6. appium
以下コマンドでインストールする
npm install -g appium
npm install -g appium-doctor
7. singing
このままappiumからiPhoneを起動しようとするとエラーになります
原因は、ソースコードでsingingが設定されていないため。
それをxcodeで回避する
以下パスにWebDriverAgentのソースコードがあります
これを、Xcodeで開きます
$HOME/.nodebrew/node/v9.
4.0
/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
→
このとき、apple developer programに参加している必要があり、そこから
certificationを入れる必要があります
Appium関連起動
for android
appiumを起動する
appium -p
9502
-a XX.XX.XX.XX
※ XX.XX.XX.XXはMacのIP address
for iOS
appiumを起動する
appium -p
9503
-a XX.XX.XX.XX
ios_webkit_debug_proxyを起動する
ios_webkit_debug_proxy -c $UID:
27753
-d
※ $UIDは接続しているiphoneのUID
※ 正しくproxyが起動しているかは、safariで確認できる
http://localhost:27753
↓
接続しているiphoneでsafariでどこかのページに遷移させた状態でアクセスすると
そのアクセス先などを見ることができる
Ranorexからテスト!
エンドポイントを追加する
Appium serverのアドレスを指定する
http://XX.XX.XX.XX:950x/wd/hub
※ XX.XX.XX.XX はAppium serverのIP
※ 950xは上記で作成したport。今回 androidは9503、iOSは9504になる
※ android、iOSそれぞれでエンドポイントを設定する必要がある
その後、configurationをそれぞれ作成する
iOSのcapabilitiesの例
androidのcapabilitiesの例
これでRanorexからエンドポイントを指定して実行すると、実機の標準ブラウザ(chrome、safari)でテストが行われる
2017年10月10日
カンファレンス
2017/10/10 品川コンフェレンスセンターにて
「楽天のレジャー・サービスにおける自動化の取り組みとその効果」
の発表があった。
その内容の抜粋です
テスト自動化の現状
各データから、テスト自動化の実情がわかる。
100%カバレッジを目指しているわけではないことがわかる
テスト自動化の手段
有償ライセンスと無償ライセンス
内のチームのスキルセットと実際の1プロジェクトを自動化した場合のコスト比較をおこなった
自動化の適用例
基本的な機能テストの自動化したことによる効果
テストデータ作成の効果は絶大
入力フォームのバリデーションを網羅するテスト
クロスブラウジング、同動作の繰り返しテストは、繰り返しすうが多ければ
其の分効果絶大
レスポンスタイムをOVERしないかをチェックする仕組み
本番環境で、主要機能のパフォーマンスを定期的にチェックする
CIの構築の仕組み
2017/10/10 品川コンフェレンスセンターにて
「楽天のレジャー・サービスにおける自動化の取り組みとその効果」
の発表があった。
その内容の抜粋です
テスト自動化の現状
各データから、テスト自動化の実情がわかる。
100%カバレッジを目指しているわけではないことがわかる
テスト自動化の手段
有償ライセンスと無償ライセンス
内のチームのスキルセットと実際の1プロジェクトを自動化した場合のコスト比較をおこなった
自動化の適用例
基本的な機能テストの自動化したことによる効果
テストデータ作成の効果は絶大
入力フォームのバリデーションを網羅するテスト
クロスブラウジング、同動作の繰り返しテストは、繰り返しすうが多ければ
其の分効果絶大
レスポンスタイムをOVERしないかをチェックする仕組み
本番環境で、主要機能のパフォーマンスを定期的にチェックする
CIの構築の仕組み
2017年08月04日
テスト管理で、毎日の作業で工数削減、正確性をもとめてテスト管理ツールを調べてみた
■TestRail
■QualityForward
■CAT
- TestRail (Gurock)
- QualityForward (Veriserve)
- CAT (SHIFT)
■TestRail
- 完全英語。利用者が英語が不得意のメンバーがいたのでハードルが高い
- メンテナンスがよくあり、現地の夜実施時間帯が、日本で日中。そのため、作業が止まってしまう
■QualityForward
- レポート機能は優れている
- 連携可能なバグトラッキングはRedmineのみ(2017/8現在)
■CAT
- レポート機能、操作性が優れている
- 連携可能なバグトラッキングはRedmine、jira、Backlog