1. 程式人生 > >走進 Xamarin Test Recorder for Xamarin.Forms

走進 Xamarin Test Recorder for Xamarin.Forms

recording com ucc 註釋 nag 程序 右滑 技術分享 結束

此篇是承接之前 走進 UITest for Xamarin.Forms 的,所以如果沒有看過之前的可以先看下之前的 UITest

比起上一篇純敲代碼只適合程序員的 UITest ,這一篇不管是程序員還是測試人員都可以很輕松的來自動生成測試代碼

Xamarin Test Recorder 其實和 Coded UI Test 是一樣的功能,你只需要點擊操作你的程序,它會自動錄制下來你的操作生成相應的代碼

以下演示基於

  • WIN 10 17017 Preview
  • VS 2017 15.4
  • Visual Studio Emulator for Android ( 5.5" Marshmallow(6.0.0) XXHDPI Phone API Level 23(Marshmallow, 6.0.0) )
  • Letv X800+ (Android 6.0 - API 23)

一、準備工作

1.首先去 VS 的 Tools 菜單的 Extensions and Updates 裏安裝好 Xamarin Test Recorder,我這裏安裝好了,第一次安裝先點 Online 然後搜索 Xamarin Test Recorder 再下載

技術分享

2.Tools 菜單下的 Visual Studio Emulator for Android 下載好 Emulator 的鏡像

技術分享

3.手機連接上電腦,開啟開發者模式,開啟 USB 調試模式並允許後臺安裝應用程序,USB 驅動 Android SDK Manager 裏有下載安裝

二、開始 Recorder

在解決方案裏添加一個 UITest 項目,引用 Android 項目,打開 Test 文件,類上邊的 TestFixture 的 Attrubute 前邊會有個小 Icon

技術分享

點擊 Icon

技術分享

如果之前沒有生成 apk 包,先生成 Droid 項目,我這裏生成好了,直接點擊 Select APK,選擇 Android 項目下的 Bin/Release/SD.Xamarin.Droid.apk

技術分享

等待幾秒鐘(看機器的性能而定,VS左下角會顯示 Conneting 之類的),直到下邊出現了一個新的 NewTest 的 Test 方法

此時就可以點擊 Emulator 或者真機來執行你的操作,Test 方法裏會同時記錄你的操作的相應代碼

當需要等待某個條件的方法 WaitForElement 或者當前屏幕需要截屏時,可以點擊方法前的小 Icon 選擇 Start Assertion Mode 或者 Take Screenshot

比如需要等待 UI 加載出來某些東西,需要 UserName 和 Password 填寫內容,登錄後的成功截圖等,直到結束後點擊 Stop Recording,然後執行 Test ,會看到 Successful 的結果

技術分享

       [Test]
        public void NewTest3()
        {
            _app.Screenshot("Screenshot");
            _app.WaitForElement(x => x.Marked("Username"));
            _app.Tap(x => x.Marked("Username"));
            _app.EnterText(x => x.Marked("Username"), "Name");
//清除文字 _app.ClearText(x => x.Marked("Username")); _app.EnterText(x => x.Marked("Username"), "Name"); _app.WaitForElement(x => x.Marked("Password")); _app.Tap(x => x.Marked("Password")); _app.EnterText(x => x.Marked("Password"), "Password");
//向下滾動 _app.ScrollDown();
//向上滾動 _app.ScrollUp();
//從右向左滑動
_app.SwipeRightToLeft();
//從左向右滑動 _app.SwipeLeftToRight();
//持續選中
_app.TouchAndHold(x => x.Class("FormsImageView"));
//返回 _app.Back();
_app.Tap(x => x.Marked("LoginButton")); _app.Screenshot("Tapped on view with class: AppCompatButton with text: Login with marked: LoginButton"); }

紅色部分是隨意試出來的,當 UI 有需要的時候可以使用,這裏跑 Test 不需要,只是測試下都有什麽功能,運行時註釋掉就可以了

三、操作演示

  • Emulator

技術分享

  • 真機

技術分享

這裏很清楚的看到跑同樣的測試,在 Name 裏閃爍了2次,但是跳不到 Password 裏,所以不是手機的問題,應該就是 Bug 了吧

這裏也回顧了一下之前手寫的 Test 代碼,果然還是有不一樣的地方,看來還是英文理解的有點問題,但是這樣不用寫代碼更靠譜

結論:英文對程序員很重要

英文對程序員很重要

英文對程序員很重要

走進 Xamarin Test Recorder for Xamarin.Forms