一、某公司網站的後臺管理有一個用戶註冊的功能須要測試,該測試爲黑盒測試,請用表格的方式給出該功能的測試用例(參考課本P107頁)。用戶註冊功能描述以下:
(1)管理員必須先登陸,方可進入網站後臺管理,進入後臺管理界面後能夠進行用戶註冊(假設用戶註冊的URL地址爲http://www.fengt.com/Admin/UserRegister.jsp)
(2)用戶註冊要求輸入用戶名、密碼、密碼確認、郵箱,這4項內容均不能爲空
(3)用戶名要求6-10個字符,由字母和數字構成,且只能以字母開頭。用戶名是惟一的。
(4)密碼至少6位,包含字母、數字和特殊符號(如: ! + ~ 等)
(5)郵箱必須符合郵箱規則
(6)違法以上任何一個要求都應該有相應的提示
(7)註冊成功需提示「註冊成功,請您記住密碼」,並跳轉到用戶登陸頁面進行登陸(假設用戶登陸頁面爲http://www.fengt.com/Admin/Login.jsp)java
用例IDweb |
xxxx-xx-xx數據庫 |
用例名稱瀏覽器 |
用戶註冊jsp |
用例描述測試 |
管理員登陸後臺界面,註冊用戶名、密碼、密碼確認和郵箱都符合的狀況下,註冊成功 頁面信息包含管理員登陸後臺管理頁面,用戶名、密碼、密碼確認和郵箱錄入接口,輸入數據後的註冊成功頁面,用戶登陸頁面。網站 |
||
用例入口ui |
管理員登陸後臺管理界面,進入後臺登陸界面進行用戶註冊。spa |
測試用例IDfirefox |
場景 |
測試步驟 |
預期結果 |
備註 |
TC1 |
管理員登錄 |
進入登錄頁面,進行登錄 |
顯示管理員登錄成功 |
|
TC2 |
進入後臺管理界面, 進行用戶註冊登錄。 |
選擇用戶註冊模塊進行用戶註冊,瀏覽器地址http://www.fengt.com/Admin/UserRegister.jsp |
成功進入註冊模塊 |
|
TC3 |
用戶名驗證 |
輸入一個已存在的ID:test123 |
提示用戶已存在,從新輸入 |
|
TC4 |
用戶名錄入_驗證 |
輸入l12345 |
輸入成功 |
|
TC5 |
用戶名_容錯性驗證 |
輸入:123456789 |
密碼不符合要求,請從新輸入 |
輸入數據超過規定長度範圍 |
|
用戶名_容錯性驗證 |
輸入:123 |
密碼不符合要求,請從新輸入 |
輸入數據不足規定長度範圍 |
TC6 |
密碼驗證 |
輸入規範的用戶名,輸入不符合規 範的密碼:123456 |
提示輸入的密碼不符合規範,請從新檢查後輸入。 |
|
TC7 |
密碼確認--有效性校驗 |
輸入有效用戶名,第一次輸入規範密碼: LZH33+,第二次輸入無效密碼:123456 |
提示輸入的兩次密碼不同,請從新輸入 |
|
TC8 |
郵箱輸入驗證 |
輸入不符合規範的郵箱格式:123456@.com |
提示輸入郵箱格式有誤,請從新輸入 |
|
TC9 |
正確輸入 |
輸入用戶名:l12345密碼:LZH33+確認密碼:LZH33+郵箱:1234567@hotmail.com,點擊提交 |
提示輸入正確,註冊成功,並提示「註冊成功,請記住密碼」 |
|
TC10 |
註冊成功 |
頁面跳轉 |
二、利用Selenium2爲Lab05項目中的登陸功能實現功能自動化測試。
【注意】
l 設計測試用例時需考慮登陸成功和不成功兩種狀況;
l Lab05項目爲實驗5用到的項目,在你們的班級QQ羣中,數據庫採用MySQL,數據庫文件在項目根目錄下CreateDataBase.txt
(1)從ECLIPSE開始到瀏覽器package com.lwk.test;import org.junit.Test;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.support.ui.WebDriverWait;public class Test1 {@Testpublic void Test(){//若是瀏覽器沒有默認安裝在C盤,須要制定其路徑System.setProperty("webdriver.firefox.bin", "E:\\Program Files\\Mozilla Firefox\\firefox.exe");//System.setProperty("webdriver.ie.driver","C:\\Program Files\\Internet Explorer\\IEDriverServer.exe");//打開火狐瀏覽器WebDriver driver = new FirefoxDriver();//打開IE瀏覽器/*WebDriver driver = new InternetExplorerDriver();*///若是作頁面測試,建議用HttpUnitDriver,這種方式打開瀏覽器,而是在內存中運行,速度比較快//WebDriver driver = new HtmlUnitDriver();//打開要測試的頁面driver.get("http://www.baidu.com/");System.out.println("打開連接——>");//設置等待超出的時間(100秒)WebDriverWait wait = new WebDriverWait(driver, 100);//找到頁面元素,此處是搜索輸入框WebElement txtSearchBox = driver.findElement(By.name("wd"));//設置頁面元素的值,即往輸入框中輸入值txtSearchBox.sendKeys("selenium2");//找到搜索按鈕,並點擊它WebElement btn = driver.findElement(By.id("su"));btn.click();//關閉瀏覽器//driver.close();}}(2)先錄製,再轉成JAVA代碼package com.lwk.test;import java.util.regex.Pattern;import java.util.concurrent.TimeUnit;import org.junit.*;import static org.junit.Assert.*;import static org.hamcrest.CoreMatchers.*;import org.openqa.selenium.*;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.support.ui.Select;public class Test2 {private WebDriver driver;private String baseUrl;private boolean acceptNextAlert = true;private StringBuffer verificationErrors = new StringBuffer();@Beforepublic void setUp() throws Exception {System.setProperty("webdriver.firefox.bin", "E:\\Program Files\\Mozilla Firefox\\firefox.exe");driver = new FirefoxDriver();baseUrl = "https://www.baidu.com/";driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);}@Testpublic void testUntitled() throws Exception {driver.get(baseUrl + "/");driver.findElement(By.id("kw")).click();driver.findElement(By.id("kw")).click();driver.findElement(By.id("kw")).click();driver.findElement(By.id("kw")).clear();driver.findElement(By.id("kw")).sendKeys("seleniumIDE");driver.findElement(By.id("su")).click();driver.findElement(By.id("kw")).click();}@Afterpublic void tearDown() throws Exception {driver.quit();String verificationErrorString = verificationErrors.toString();if (!"".equals(verificationErrorString)) {fail(verificationErrorString);}}private boolean isElementPresent(By by) {try {driver.findElement(by);return true;} catch (NoSuchElementException e) {return false;}}private boolean isAlertPresent() {try {driver.switchTo().alert();return true;} catch (NoAlertPresentException e) {return false;}}private String closeAlertAndGetItsText() {try {Alert alert = driver.switchTo().alert();String alertText = alert.getText();if (acceptNextAlert) {alert.accept();} else {alert.dismiss();}return alertText;} finally {acceptNextAlert = true;}}}