A. 如何連接資料庫
如果您是ACCESS資料庫。這是最簡單的一種資料庫,它通常都是隨著資料庫源碼可以放在一起的,只需要知道FTP地址、賬戶與密碼就可以連接。利用FTP上傳工具上傳即可。上傳工具小編在下方資料參考處提供軟體下載鏈接。
B. 如何使用UIAutomation進行iOS自動化測試
寫在前面
研究iOS的自動化測試也有些日子了,剛開始的時候,一直苦於找不到什麼好的資料,只能從Apple的官網查閱相關的API文檔,只可惜,Apple對開發者來說實在是不怎麼友好,文檔寫得相當的粗略,對於初學者來說有一定的難度。
本來是打算自己動手寫一篇關於iOS的UI自動化測試的入門級別的介紹性文檔的,但想起來後面在具體解決一些問題的時候,收藏一篇很好的Blog,很全面地介紹了如何使用UIAutomation的JavaScript Libraries做iOS程序的自動化測試。如果作者早點看到這篇文章,應該要少走一些彎路,這里沒有創意性的它他翻譯成中文,希望對你們有一些幫助。
原文地址:http://blog.manbolo.com/2012/04/08/ios-automated-tests-with-uiautomation
翻譯正文:
快速入門
自動化測試代碼可以「在你的睡著的時候」很好地幫你測試你的應用程序。它可以讓你能夠快速地跟蹤你程序中的回歸和性能方面的問題,這樣你就不用擔心你新增的功能會影響到你之前已經完成開發的程序了。
隨
著iOS4.0的發布,蘋果公司同時發布了一個名為UIAutomation的測試框架,它可以用來在真實設備和iPhone模擬器上執行自動化測試。但
官方關於UIAutomation的文檔相當的有限,在網路上也沒有太多的資源可以查找的。本文將向你展示你如何將UIAutomation整合到你的工
作流程當中去。
作為基礎知識的准備,你可以先看一下蘋果公司關於UIAutomation的文檔,另外還有一篇快速入門的介紹蘋果Instruments的文檔也值得看看,當然,如果你有一個免費的Apple開發者賬號的話,你可以看一下WWDC 2010 - Session 306 – 使用Instruments進行用戶界面自動化測試的幻燈片或者視頻。
除此之外,包括在Xcode中的OCUnit測試框架也可以用來為你的應用程序編寫單元測試。
1. 第一個UIAutomation測試腳本
使用iOS 模擬器
使用iOS設備
2. 處理UIAElement和元素可訪問性(Accessibility)
UIAElement層次結構
模擬用戶操作
3. 經驗分享(讓你的生活變得更簡單)
類庫Tune-up介紹
導入外部腳本
使用強大的命令行
使用錄制交互功能
當遇到問題時,加上「UIATarget.delay(1);」
4. 高級交互
處理非預期和預期的提示框(alerts)
多任務
屏幕方向
5. 總結
有用的鏈接
一個視頻
1. 你的第一個UIAutomation測試腳本
UIAutomation的功能測試代碼是用Javascript編寫的。UIAutomation和Accessibility有著直接的關系,你將用到通過標簽和值的訪問性來獲得UI元素,同時完成相應的交互操作。
下面讓我們來編寫我們的第一段測試代碼。
使用iOS模擬器
1. 下載示例應用程序TestAutomation.xcodeproj,並打開它。這個項目是一個很簡單的包含2個tab的tabbar應用程序。
2. 確保選中如下圖所示的「TestAutomation > iPhone 5.0 Simulator」模式(或許你已經切換成5.1了,因此它可能是iPhone5.1模擬器)。
3. 啟動Instruments(Proct > Profile),或者通過⌘I。
4. 選擇左邊的iOS Simulator,然後再選擇Automation模板,然後點擊「Profile」。
5. Instruments就已經啟動好後,然後直接開始錄制了。這里先停止錄制,(紅包按鈕或者⌘R)。
6. 在左邊的Scripts窗口,點擊「Add > Create」創建新的腳本。
7. 在腳本編輯器里,輸入下面的代碼
var target = UIATarget.localTarget();
var app = target.frontMostApp();
var window = app.mainWindow();
target.logElementTree();
8. 重新運行這段腳本⌘R(不需要保存)。腳本跑起來後,你可以在日誌打完後停止它。
贊一個!我們就這樣完成了我們的第一個UIAutomation測試用例。
使用iOS設備
你除了將你的測試用例運行模擬器上,也可以將它運行在一個真實的設備上。不過,自動化測試用例只能運行在支持多任務的:iPhone 3GS,iPad,iOS > 4.0等設備上。遺憾的是不管iPhone 3G的系統版本是什麼,都不支持。
下面是如何操作:
1. 通過USB介面連接上你的iPhone。
2. 選擇 「TestAutomation > iOS Device」模式。
3. 確保Developper profile設置成Release模式(而不是Ad-Hoc Distribution profile)。默認情況下,profiling是設置成Release模式的(因為沒有必要將profile設置成Debug模式)。
4. 啟動測試 (⌘I)
5. 後面的步驟請參考前面模擬器部分。
2. 處理UIAElement和元素可訪問性(Accessibility)
UIAElement層次結構
Accessibility和UIAutomation有密切的聯系:如果一個控制項的Accessibility是可以被訪問的,你就可以設置和讀取它的值,作相關的操作,而當一個控制項的Accessibility不可見時,你就沒有辦法通過automation訪問它。
你可以通過Interface
Builder,或者通過在程序里設置isAccessibilityElement屬性的方式來設置一個控制項的Accessibility或者可被自動
化。當你設置container
view(即:一個視圖包含其它的UIKit元素)的accessibility時,你必須注意。你設置了整個View的accessibility將會
「隱藏」它的子視圖的accessibility,例如:在示例項目中,你不能將outlet視圖設置成可訪問的,否則它所有的子控制項將都不可以訪問了。
在任何時候,logElementTree都是你忠實的朋友:它將當前界面的所有可被訪問的元素都列印在日誌里。
每一個可以被訪問的UIKit控制項都可以用一個Javascript對象來描述,它就是一個UIAElement。UIAElement有幾個屬
性:name, value, elements,
parent。你的主窗口包含很多的控制項,它們是以UIKit層次的方式定義的,這些UIKit層次結構對應的是UIAElement的層次樹。例如:前
面的測試代碼中,通過調用logElementTree,我們可以得到如下面所示的樹結構:
+- UIATarget: name:iPhone Simulator rect:{{0,0},{320,480}}
| +- UIAApplication: name:TestAutomation rect:{{0,20},{320,460}}
| | +- UIAWindow: rect:{{0,0},{320,480}}
| | | +- UIAStaticText: name:First View value:First View rect:{{54,52},{212,43}}
| | | +- UIATextField: name:User Text value:Tap Some Text Here ! rect:{{20,179},{280,31}}
| | | +- UIAStaticText: name:The text is: value:The text is: rect:{{20,231},{112,21}}
| | | +- UIAStaticText: value: rect:{{145,231},{155,21}}
| | | +- UIATabBar: rect:{{0,431},{320,49}}
| | | | +- UIAImage: rect:{{0,431},{320,49}}
| | | | +- UIAButton: name:First value:1 rect:{{2,432},{156,48}}
| | | | +- UIAButton: name:Second rect:{{162,432},{156,48}}
你可以通過下面的代碼來訪問文本框:
var textField =
UIATarget.localTarget().frontMostApp().mainWindow().textFields()[0];
你可以選擇通過從0開始的索引或者這個元素的名稱來訪問這個元素,例如:你也可以通過下面的代碼來訪問文本控制項。
var textField =
UIATarget.localTarget().frontMostApp().mainWindow().textFields()["User Text"];
後一種方式更加清晰明了,應該多使用。你可以通過Interface Builder設置UIAElement的name屬性,
或者通過編寫代碼的方式:
myTextField.accessibilityEnabled = YES;
myTextField.accessibilityLabel = @"User Text";
你現在可以看到,通過accessibility屬性可以被UIAutomation用來找到不同的控制項。這非常的清晰,因為,第一,你只要學習一
個測試框架;第二,通過編寫自動化測試代碼,你同時還可以保證你的程序是可以被訪問的。因此,每一個UIAElement對象的子控制項可以通過下面的方法
進行訪問:
buttons(), images(), scrollViews(),textFields(), webViews(),
segmentedControls(), sliders(), staticTexts(), switches(),
tabBar(),tableViews(), textViews(), toolbar(), toolbars() 等等……
你可以通過如下代碼在tabbar上訪問第一個tab:
var tabBar = UIATarget.localTarget().frontMostApp().tabBar();
var tabButton = tabBar.buttons()["First"];
UIAElement結構層次非常的重要,你以後會常常用到它。而且你還要記住,你可以在隨時通過調用UIAAplication的logElementTree來獲得它的結構。
UIATarget.localTarget().frontMostApp().logElementTree();
在模擬器上,你還可以激活Accessibility 的檢測器。啟動模擬器,找到「Settings > General > Accessibility > Accessibility Inspector」,然後將它設為「打開」狀態。
這個彩色的小框框就是Accessibility
檢測器了。當它收起來的時候,Accessibility就被關閉了,當它展開的時候,Accessibility就是打開的。你只要點擊上面的箭頭按鈕
就可以激活或者屏蔽Accessibility。現在,打開我們的示常式序,激活檢測器。
然後,點擊文本框,檢查UIAElement的name和value屬性(其實就是accessibilityLabel和accessibilityValue對應的NSObject類型的值)。這個檢測器可以幫助你調試和編寫你的測試代碼。
模擬用戶操作
讓我們更進一步,模擬一些用戶的交互操作。你可以簡單地調用按鈕的tap()來作一個點擊操作:
var tabBar = UIATarget.localTarget().frontMostApp().tabBar();
var tabButton = tabBar.buttons()["First"];
// Tap the tab bar !
tabButton.tap();
你還可以調用UIAButtons的doubleTap(), twoFingerTap()。如果你不想操作具體的某個元素,你也可以直接根據屏幕上指定的坐標點進行操作,你可以這么用:
點擊:
UIATarget.localTarget().tap({x:100, y:200});
UIATarget.localTarget().doubleTap({x:100, y:200});
UIATarget.localTarget().twoFingerTap({x:100, y:200});
縮放:
UIATarget.localTarget().pinchOpenFromToForDuration({x:20, y:200},{x:300, y:200},2);
UIATarget.localTarget().pinchCloseFromToForDuration({x:20, y:200}, {x:300, y:200},2);
拖拽與劃動:
UIATarget.localTarget().dragFromToForDuration({x:160, y:200},{x:160,y:400},1);
UIATarget.localTarget().flickFromTo({x:160, y:200},{x:160, y:400});
注意,當你指定操作的時間間隔的時候,它是有特定的范圍的,即:拖拽操作的時間間隔必須大於或者等於0.5秒,小於60秒。
現在,讓我們來練習一下:
停止Instruments (⌘R)
在Scripts窗口裡, 移除當前的腳本
點擊「Add > Import」然後選擇TestAutomation/TestUI/Test-1.js(將下面的代碼保存到這個路徑)
點擊錄制按鈕 (⌘R) 然後看看將會發生什麼…
下面是Test-1.js代碼:
var testName = "Test 1";
var target = UIATarget.localTarget();
var app = target.frontMostApp();
var window = app.mainWindow();
UIALogger.logStart( testName );
app.logElementTree();
//-- select the elements
UIALogger.logMessage( "Select the first tab" );
var tabBar = app.tabBar();
var selectedTabName = tabBar.selectedButton().name();
if (selectedTabName != "First") {
tabBar.buttons()["First"].tap();
}
//-- tap on the text fiels
UIALogger.logMessage( "Tap on the text field now" );
var recipeName = "Unusually Long Name for a Recipe";
window.textFields()[0].setValue(recipeName);
target.delay( 2 );
//-- tap on the text fiels
UIALogger.logMessage( "Dismiss the keyboard" );
app.logElementTree();
app.keyboard().buttons()["return"].tap();
var textValue = window.staticTexts()["RecipeName"].value();
if (textValue === recipeName){
UIALogger.logPass( testName );
}
else{
UIALogger.logFail( testName );
}
這段腳本先啟動待測程序,然後,如果第一個tab沒有被選的話就切換到第一個tab,並將上面的文本框的值設成「Unusually Long
Name for a Recipe」,接著收起虛擬鍵盤。這里有一些新的方法值得注意的:UIATarget的delay(Number
timeInterval) 方法允許你在兩個操作之間做一些等待,UIALogger的logMessage( String message)
方法用來將你想列印的信息輸出到日誌上去,UIALogger的logPass(String
message)方法指明你的測試腳本已經成功的完成測試了。
你還知道了如何訪問鍵盤上的按鈕,然後作點擊操作:
app.keyboard().buttons()["return"].tap();C. android UI 界面怎麼連接sqlite 進行資料庫修改
推薦你去下載afinal,安卓的開源項目,可以載入sd卡或者本地的資料庫,值得借鑒
做一個android藍牙接收模塊,接收部分已經做好,但是現在想在手機UI界面上面做一個mac地址的篩選功能,就是在UI界面上面輸入一些mac地址,當藍牙接收到匹配的mac地址才進行接收和顯D. web自動化需要做資料庫校驗嗎
不需要
因為資料庫斷言校驗一般放在介面自動化中,因為介面本身跳過界面層,直接後台服務,不從界面調,自己從當一個客戶端。E. android UI 界面怎麼連接sqlite 進行資料庫修改
Cursor c=db.query("student", new String[]{}, "_id=?", null, null, null, null); SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.listview,c, new String[]{"_id","Sname","Ssex"}, new int[]{R.id.id,R.id.Tname,R.id.Tsex}); setListAdapter(adapter);
F. soapui介面測試怎麼連接資料庫進行測試
1.新建soapUI工程:右擊左側導航面板中的工作空間節點「Project」,選擇「New soapUI Project」,輸入工程名稱,點擊OK
2.新建TestSuite:右擊Project名,選擇「New TestSuite」
3.新建 TestCase:右擊TestSuite名,選擇「New TestCase」
4.添加數據源:右擊「Test Steps」,選擇「Add Step「,選擇「DataSource」
5.添加HTTP請求:右擊「Test Steps」,選擇「Add Step「,選擇「HTTP Test Request」
6.添加循環:右擊「Test Steps」,選擇「Add Step「,選擇「DataSource Loop「
7.添加數據源數據:選擇數據源類型之後進行添加,下圖以excle為例
8.添加http請求數據:選擇http請求類型之後進行添加,下圖以POST請求為例
9.添加loop:將數據源和http請求關聯
10編輯完成後運行測試case進行正確性的測試,為了保證運行的正確性,可以添加斷言對結果進行檢查
當顯示的測試結果為FINISHED時,表示測試通過。G. 一般大公司UI自動化測試使用什麼工具呢
1、Selenium:該軟體是一個用於Web應用程序測試的工具。其測試直接運行在瀏覽器中,支持的瀏覽器包括IE、Mozilla Firefox、Mozilla Suite等。支持Net、Java、Perl等不同語言的測試腳本。
2、Soapui:SoapUI是一款開源測試工具,通過soap/http來檢查、調用、實現Web Service的功能/負載/符合性測試。可快速的幫助用戶進行http的介面測試,並且還支持進行檢查,監控、符合等功能。
3、Robot Framework:該軟體是一款python編寫的功能自動化測試框架。具備良好的可擴展性,支持關鍵字驅動,可以同時測試多種類型的客戶端或者介面,可以進行分布式測試執行。主要用於輪次很多的驗收測試和驗收測試驅動開發。
4、QTP:該軟體提供符合所有主要應用軟體環境的功能測試和回歸測試的自動化。採用關鍵字驅動的理念以簡化測試用例的創建和維護。它讓用戶可以直接錄制屏幕上的操作流程,自動生成功能測試或者回歸測試用例。
5、Jmeter:JMeter是Apache組織的開放源代碼項目,它是功能和性能測試的工具,100%的用java實現;可以用於測試靜態或者動態資源的性能(文件、Servlets、Perl腳本、java對象、資料庫和查詢、ftp伺服器或者其他的資源)。
H. 購物流程ui自動化用例怎麼設計
軟體自動化測試的學習步驟
大概步驟如下:
1. 做好手工測試(了解各種測試的知識)-> 2. 學習編程語言-> 3. 學習Web基礎(HTML,HTTP,CSS,DOM,Javascript)或者 學習Winform
-> 4. 學習自動化測試工具 ->5. 學習自動化測試框架 -> 6. 實現自動化測試用例 -> 7. 開發自動化測試工具 ->8. 開發自動化測試框架
自動化測試的最高境界是: 開發測試工具,設計自動化測試框架, 讓別人用。
自動化測試的本質
自動化測試的本質是:用程序測試程序。 也就是說學習「編程語言」是學習自動化測試的基礎。
很多人問小坦克我學自動化測試,應該去學什麼自動化工具。 我的回答是,第一步:應該先學習編程語言,以後再去學自動化測試工具
自動化測試是一定要寫代碼的, 編程語言水平的高低決定了自動化測試水平的高低, 有了扎實的編程技術,干什麼都可以。
學習編程語言時, 要把自己當做開發人員, 系統地學習各種編程知識。
自動化測試學習的誤區
很多新手一開始,就學習復雜的自動化測試工具, 我覺得這樣是本末倒置了。
如果不先理解HTTP協議, 就不會理解Jemeter, LoadRunner, Fiddler, SoapUI這些工具的。
如果不先理解HTML,DOM, 就不會理解Firebug 這種工具的
如果不先理解Win32 API, 就不會理解Windows 窗體自動化測試的原理的。
如果自己沒有開發過網站, 就不會理解網站的各個方面,測試起來難免有遺漏。
總之學習自動化測試,需要循序漸進, 把基礎打好。
自動化測試的職位
自動化測試工程師的職位叫做: (SDET) Software Development Engineer in Test. 專注於自動化測試
手動測試工程師叫: (STE)Software test enginer. 專注於手動測試
在微軟有很多SDET的職位,但是沒有STE的職位, STE職位一般都是外包給外包公司的, 目前自動化測試還是非常吃香的。
自動化測試分類
自動化測試也有非常多的種類,
對Web UI 的自動化測試程序
對Windows 窗體UI的自動化測試程序
API測試, 比如(測試WCF service, Web API 等)
資料庫測試, 比如測試存儲過程
介面測試 (這種只能用自動化測)
單元測試
性能測試, 性能測試都需要用到自動化I. UI設計師需要完成資料庫設計嗎
不需要。
在開發當中,第一件事就算根據UI設計師的設計圖片來進行資料庫的定製,定製資料庫是整個開發首當其沖最為重要一層,就好比基建的地基一樣,一旦沒有建設好,重蹈覆徹的時間、精力成本將會大大的增加。在項目初期務必和團隊協商完成資料庫的設計。
當前UI設計師的工作內容也可細分為五種,軟體界面的美術設計、創意工作和製作工作,根據各種相關軟體的用戶群,提出構思新穎、有高度吸引力的創意設計,對頁面進行優化,使用戶操作更趨於人性化,維護現有的應用產品,收集和分析用戶對於GUI的需求。J. 套用了Layui登錄的模板怎麼連接SQL資料庫跳轉
你這個只是純靜態的html網頁,是連接不了sql資料庫的,你還要寫個後台代碼文件處理這些表單信息,form表單裡面有個提交url,把這個url指向後台的代碼文件