当前位置: 首页 > news >正文

商城系统-项目测试

1.测试用例

从功能测试+性能测试+界面测试+兼容性测试+易用测试+安全测试去完成测试用例。

 2.功能测试

注册功能为例:

注册:注册功能通过等价划分法,边界值分析,正交法去设计测试用例,高效覆盖多因素组合场景,用最少的测试用例覆盖尽可能多的参数组合。

注册测试用例1:

都不输入的情况下点击注册按钮

预期结果:弹出对应的提示信息

注册测试用例2: 

用户名输入1个字符的情况下

预期结果:弹出对应的提示信息

注册测试用例3: 

用户名输入2个字符的情况下

预期结果:无提示信息,点击注册后光标自动来到登录密码框

注册测试用例4: 

用户名输入18个字符的情况下

预期结果:无提示信息,点击注册后光标自动来到登录密码框

 

注册测试用例5: 

用户名输入19个字符的情况下

预期结果:弹出对应的提示信息

注册测试用例6: 

密码输入5个字符的情况下

预期结果:弹出对应的提示信息

注册测试用例7: 

密码输入6个字符的情况下

预期结果:无提示信息,点击注册后光标自动来到验证码框

注册测试用例8: 

密码输入18个字符的情况下

预期结果:无提示信息,点击注册后光标自动来到验证码框

 

注册测试用例9: 

密码输入19个字符的情况下

预期结果:弹出对应的提示信息

注册测试用例10: 

正确填写用户名,不填写密码+验证码

预期结果:弹出对应的提示信息

 

注册测试用例11: 

正确填写密码,不填写用户名+验证码

预期结果:弹出对应的提示信息

注册测试用例12: 

正确填写验证码,不填写用户名+密码

预期结果:弹出对应的提示信息

 

 3.界面测试

以登录界面为例:

  • 页面大小合理,无错别字。
  • 布局清晰易懂,颜色搭配协调。
  • 提示信息合理(如输入错误时给出明确反馈)。
  • 输入账号密码不影响其他元素交互(如按钮响应正常)。

 以首页模块为例:

  • 布局大小合理,列间距一致。
  • 图片清晰无模糊,自适应不同屏幕和设备。
  • 页面下滑流畅,分类明确,无错别字。
  • 交互元素如搜索框和导航栏始终置顶,便于使用。
  • 点击图片可跳转至详情页,功能完整。

 4.自动化测试

引入依赖:

<dependencies><!--        selenium --><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.0.0</version></dependency><!--        驱动管理--><dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>5.8.0</version></dependency><!--        屏幕截图--><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency></dependencies>

Utils类,用于放公共方法,减少代码复用

public class Utils {public static WebDriver driver = null;public static WebDriverWait wait = null;public Utils(String Url){CommonDriver();driver.get(Url);wait = new WebDriverWait(driver, Duration.ofSeconds(10));}public static WebDriver CommonDriver() {if (driver == null) {//配置浏览器//WebDriverManager.chromedriver().setup();System.setProperty("webdriver.chrome.driver","D:\\Git_projects\\java_projects\\ShoppingAutoText\\chromedriver.exe");ChromeOptions options = new ChromeOptions();//设置加载策略//options.setPageLoadStrategy((PageLoadStrategy.EAGER));//添加允许所有来源的参数options.addArguments("--remote-allow-origins=*");driver = new ChromeDriver(options);//添加等待,贯穿全局driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));}return driver;}public static void CommonScreenshot(String str) throws IOException {//获取当前时间SimpleDateFormat sim1 = new SimpleDateFormat("YY-MM-DD");SimpleDateFormat sim2 = new SimpleDateFormat("HHmmssSS");String time1 = sim1.format(System.currentTimeMillis());String time2 = sim2.format(System.currentTimeMillis());//截图String filename = "./src/test/java/images/"+ time1 + "/" +str + "-" +time2+".png";File file = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);FileUtils.copyFile(file,new File(filename));}public  static  void CommonQuit(){if (driver != null) {driver.quit();}}
}

以注册页为例:

public class RegistrationRageTest extends Utils {public static String Url = "http://8.155.1.153/?s=user/regInfo.html";public RegistrationRageTest() {super(Url);}//异常注册//都不输入的情况下public void AbnormalRegistrationPage() throws IOException {//点击注册按钮driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div.am-form-group.am-margin-top-main.am-padding-0 > button")).click();//屏幕截图CommonScreenshot(Thread.currentThread().getStackTrace()[1].getMethodName());// 等待提示框消失的组合策略// 首先等待提示框出现WebElement prompt = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//p[@class='prompt-msg']")));// 然后等待提示框消失wait.until(ExpectedConditions.invisibilityOf(prompt));}//用户名输入1个字符的情况下public void AbnormalRegistrationPage1() throws IOException {//点击用户输入框并输入WebElement userName = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div:nth-child(1) > input"));userName.click();userName.sendKeys("l");//点击注册按钮driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div.am-form-group.am-margin-top-main.am-padding-0 > button")).click();//屏幕截图CommonScreenshot(Thread.currentThread().getStackTrace()[1].getMethodName());//等待提示信息WebElement prompt = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//p[@class='prompt-msg' and text()='请使用字母、数字、下划线2~18个字符']")));String text1 = prompt.getText();assert text1.contains("请使用字母、数字、下划线2~18个字符");// 然后等待提示框消失wait.until(ExpectedConditions.invisibilityOf(prompt));}//输入2个字符的情况下,无错误提示public void AbnormalRegistrationPage2() throws InterruptedException, IOException {//点击用户输入框并输入WebElement userName = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div:nth-child(1) > input"));userName.sendKeys(Keys.CONTROL + "a");userName.sendKeys(Keys.DELETE);userName.sendKeys("lm");//点击注册按钮driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div.am-form-group.am-margin-top-main.am-padding-0 > button")).click();//屏幕截图CommonScreenshot(Thread.currentThread().getStackTrace()[1].getMethodName());//确认无错误提示Boolean prompt = wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("//p[@class='prompt-msg']")));assert prompt;}//输入18个字符的情况下public void AbnormalRegistrationPage3() throws IOException {//点击用户输入框并输入WebElement userName = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div:nth-child(1) > input"));userName.sendKeys(Keys.CONTROL + "a");userName.sendKeys(Keys.DELETE);userName.sendKeys("lm1231231231231231");//点击注册按钮driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div.am-form-group.am-margin-top-main.am-padding-0 > button")).click();//屏幕截图CommonScreenshot(Thread.currentThread().getStackTrace()[1].getMethodName());//确认无错误提示Boolean prompt = wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("//p[@class='prompt-msg']")));assert prompt;}//输入19个字符的情况下public void AbnormalRegistrationPage4() throws IOException {//点击用户输入框并输入WebElement userName = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div:nth-child(1) > input"));userName.sendKeys(Keys.CONTROL + "a");userName.sendKeys(Keys.DELETE);userName.sendKeys("lm12312312312312312");//点击注册按钮driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div.am-form-group.am-margin-top-main.am-padding-0 > button")).click();//屏幕截图CommonScreenshot(Thread.currentThread().getStackTrace()[1].getMethodName());//等待提示信息WebElement prompt = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//p[@class='prompt-msg' and text()='请使用字母、数字、下划线2~18个字符']")));String text1 = prompt.getText();assert text1.contains("请使用字母、数字、下划线2~18个字符");// 然后等待提示框消失wait.until(ExpectedConditions.invisibilityOf(prompt));}//密码输入5个字符的情况下public void AbnormalRegistrationPage5() throws IOException {//点击密码输入框并输入WebElement password = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div:nth-child(2) > input"));password.sendKeys(Keys.CONTROL + "a");password.sendKeys(Keys.DELETE);password.sendKeys("lm123");//点击注册按钮driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div.am-form-group.am-margin-top-main.am-padding-0 > button")).click();//屏幕截图CommonScreenshot(Thread.currentThread().getStackTrace()[1].getMethodName());//等待提示信息WebElement prompt = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//p[@class='prompt-msg' and text()='密码格式6~18个字符之间']")));String text1 = prompt.getText();assert text1.contains("密码格式6~18个字符之间");// 然后等待提示框消失wait.until(ExpectedConditions.invisibilityOf(prompt));}//输入6个字符的情况下public void AbnormalRegistrationPage6() throws IOException {//点击密码输入框并输入WebElement password = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div:nth-child(2) > input"));password.sendKeys(Keys.CONTROL + "a");password.sendKeys(Keys.DELETE);password.sendKeys("lm1234");//点击注册按钮driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div.am-form-group.am-margin-top-main.am-padding-0 > button")).click();//屏幕截图CommonScreenshot(Thread.currentThread().getStackTrace()[1].getMethodName());//确认无错误提示Boolean prompt = wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("//p[@class='prompt-msg']")));assert prompt;}//输入18个字符的情况下public void AbnormalRegistrationPage7() throws IOException {//点击密码输入框并输入WebElement password = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div:nth-child(2) > input"));password.sendKeys(Keys.CONTROL + "a");password.sendKeys(Keys.DELETE);password.sendKeys("lm1231231231231231");//点击注册按钮driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div.am-form-group.am-margin-top-main.am-padding-0 > button")).click();//屏幕截图CommonScreenshot(Thread.currentThread().getStackTrace()[1].getMethodName());//确认无错误提示Boolean prompt = wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("//p[@class='prompt-msg']")));assert prompt;}//输入19个字符的情况下public void AbnormalRegistrationPage8() throws IOException {//点击密码输入框并输入WebElement password = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div:nth-child(2) > input"));password.sendKeys(Keys.CONTROL + "a");password.sendKeys(Keys.DELETE);password.sendKeys("lm12312312312312312");//点击注册按钮driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div.am-form-group.am-margin-top-main.am-padding-0 > button")).click();//屏幕截图CommonScreenshot(Thread.currentThread().getStackTrace()[1].getMethodName());//等待提示信息WebElement prompt = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//p[@class='prompt-msg' and text()='密码格式6~18个字符之间']")));String text1 = prompt.getText();assert text1.contains("密码格式6~18个字符之间");// 然后等待提示框消失wait.until(ExpectedConditions.invisibilityOf(prompt));}//正确填写用户名,不填写密码+验证码public void AbnormalRegistrationPage9() throws IOException {//点击用户输入框并输入WebElement userName = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div:nth-child(1) > input"));userName.sendKeys(Keys.CONTROL + "a");userName.sendKeys(Keys.DELETE);userName.sendKeys("lm123");//清空密码框WebElement password = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div:nth-child(2) > input"));password.sendKeys(Keys.CONTROL + "a");password.sendKeys(Keys.DELETE);//点击注册按钮WebElement click  = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div.am-form-group.am-margin-top-main.am-padding-0 > button"));new Actions(driver).doubleClick(click).perform();//屏幕截图CommonScreenshot(Thread.currentThread().getStackTrace()[1].getMethodName());//等待提示信息WebElement prompt = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//p[@class='prompt-msg' and text()='密码格式6~18个字符之间']")));String text1 = prompt.getText();assert text1.contains("密码格式6~18个字符之间");// 然后等待提示框消失wait.until(ExpectedConditions.invisibilityOf(prompt));}//正确填写密码,不填写用户名+验证码public void AbnormalRegistrationPage10() throws IOException {//清空用户名框WebElement userName = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div:nth-child(1) > input"));userName.sendKeys(Keys.CONTROL + "a");userName.sendKeys(Keys.DELETE);//点击密码输入框并输入WebElement password = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div:nth-child(2) > input"));password.sendKeys(Keys.CONTROL + "a");password.sendKeys(Keys.DELETE);password.sendKeys("lm123456");//点击注册按钮WebElement click  = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div.am-form-group.am-margin-top-main.am-padding-0 > button"));new Actions(driver).doubleClick(click).perform();//屏幕截图CommonScreenshot(Thread.currentThread().getStackTrace()[1].getMethodName());//等待提示信息WebElement prompt = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//p[@class='prompt-msg' and text()='请使用字母、数字、下划线2~18个字符']")));String text1 = prompt.getText();assert text1.contains("请使用字母、数字、下划线2~18个字符");// 然后等待提示框消失wait.until(ExpectedConditions.invisibilityOf(prompt));}//正确填写验证码,不填写用户名+密码public void AbnormalRegistrationPage11() throws IOException {//清空用户名框WebElement userName = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div:nth-child(1) > input"));userName.sendKeys(Keys.CONTROL + "a");userName.sendKeys(Keys.DELETE);//清空密码框WebElement password = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div:nth-child(2) > input"));password.sendKeys(Keys.CONTROL + "a");password.sendKeys(Keys.DELETE);//输入验证码WebElement verificationInput = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div:nth-child(3) > input"));verificationInput.sendKeys("1234");//点击注册按钮WebElement click  = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.am-g.user-register-container.theme-data-edit-event > div > div > div.am-radius-lg.am-background-white > div > div.am-tabs-bd.am-border-0 > div.am-tab-panel.am-active > form > div.am-form-group.am-margin-top-main.am-padding-0 > button"));new Actions(driver).doubleClick(click).perform();//屏幕截图CommonScreenshot(Thread.currentThread().getStackTrace()[1].getMethodName());//等待提示信息WebElement prompt = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//p[@class='prompt-msg' and text()='请使用字母、数字、下划线2~18个字符']")));String text1 = prompt.getText();assert text1.contains("请使用字母、数字、下划线2~18个字符");// 然后等待提示框消失wait.until(ExpectedConditions.invisibilityOf(prompt));}
}

以首页为列:

public class HomePage extends Utils {public static String Url = "http://8.155.1.153/";public HomePage() {super(Url);}//商城首页是否可以正常加载public void ShoppingHomePage() {//查找是否有首页两个字String text = driver.findElement(By.cssSelector("#doc-topbar-collapse > ul > li:nth-child(1) > a")).getText();assert text.equals("首页");}//未登录情况下点击会弹出登录框public void LoginPage() throws InterruptedException {//点击个人中心driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.header-top > div > ul.top-nav-right > div.top-nav-items.top-nav-items-center > div")).click();//点击xwait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[contains(@class, 'am-modal')]//span[text()='×']"))).click();}//在分类的下拉框页面中选择数码办公-手机通讯-手机成功进入进入该页面public void ClassificationPage(){//移动光标到数码办公的元素上WebElement classification = driver.findElement(By.cssSelector("#goods-category > div > div > div > ul > li:nth-child(1) > a > div"));new Actions(driver).moveToElement(classification).perform();// 等待并点击第三级分类"手机"WebElement phone = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#goods-category > div > div > div > ul > li:nth-child(1) > div > div > div > div > div > div:nth-child(1) > div.category-show-level3-child > div:nth-child(1) > a > span")));phone.click();//确认成功来到手机分类WebElement phoneDetails = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.breadcrumb-data.am-hide-sm-only > div")));assert phoneDetails.getText().contains("手机");//返回到首页driver.navigate().back();}//在分类的下拉框页面中选择数码办公-外设产品 -电脑清洁 成功进入到该页面public void ClassificationPage1(){//移动光标到数码办公的元素上WebElement classification = driver.findElement(By.cssSelector("#goods-category > div > div > div > ul > li:nth-child(1) > a > div"));new Actions(driver).moveToElement(classification).perform();// 等待并点击第三级分类"电脑清洁"WebElement pc = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#goods-category > div > div > div > ul > li:nth-child(1) > div > div > div > div > div > div:nth-child(7) > div.category-show-level3-child > div:nth-child(15) > a > span")));pc.click();//确认来到电脑清洁页WebElement pcDetails = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.breadcrumb-data.am-hide-sm-only > div > ul")));assert pcDetails.getText().contains("电脑清洁");//返回到首页driver.navigate().back();}//在分类的下拉框页面中选择时尚服饰 -女装  成功进入到该页面public void ClassificationPage2(){//移动光标到选择时尚服饰的元素上WebElement classification = driver.findElement(By.cssSelector("#goods-category > div > div > div > ul > li:nth-child(2) > a > div > h3"));new Actions(driver).moveToElement(classification).perform();// 等待并点击女装WebElement women = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#goods-category > div > div > div > ul > li:nth-child(2) > div > div > div > div > div > div:nth-child(1) > div.category-show-level3-title > a > span")));women.click();//确认来到女装页WebElement womenDetails = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.breadcrumb-data.am-hide-sm-only > div > ul")));assert womenDetails.getText().contains("女装");//返回到首页driver.navigate().back();}//在分类的下拉框页面中选择生活服务 -其他 成功进入进入该页面public void ClassificationPage3(){//移动光标到选择生活服务的元素上WebElement classification = driver.findElement(By.cssSelector("#goods-category > div > div > div > ul > li:nth-child(10) > a > div > h3"));new Actions(driver).moveToElement(classification).perform();// 等待并点击其他WebElement women = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#goods-category > div > div > div > ul > li:nth-child(10) > div > div > div > div > div > div:nth-child(6) > div > a > span")));women.click();//确认来到其他页WebElement womenDetails = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.breadcrumb-data.am-hide-sm-only > div > ul")));assert womenDetails.getText().contains("其他");//返回到首页driver.navigate().back();}//在分类的下拉框页面中选择数码办公-手机通讯成功进入进入该页面后点击手机来到手机详情页public void ClassificationPage4(){//移动光标到数码办公的元素上WebElement classification = driver.findElement(By.cssSelector("#goods-category > div > div > div > ul > li:nth-child(1) > a > div"));new Actions(driver).moveToElement(classification).perform();// 等待并点击"手机通讯"WebElement phone = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#goods-category > div > div > div > ul > li:nth-child(1) > div > div > div > div > div > div:nth-child(1) > div.category-show-level3-title > a > span")));phone.click();//点击手机按钮driver.findElement(By.cssSelector("#search-map > div > div > ul > li.am-nbfc.map-category-container > div.map-right.map-text-items.am-fr.am-nbfc.theme-data-edit-event > ul > li:nth-child(1) > a")).click();//确认成功来到手机分类WebElement phoneDetails = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.breadcrumb-data.am-hide-sm-only > div")));assert phoneDetails.getText().contains("手机");//返回到首页driver.navigate().back();}//搜索栏输入为空,来到搜索栏详情页public void SearchPage(){//直接点击搜索WebElement SearchButton = driver.findElement(By.xpath("//*[@id=\"ai-topsearch\"]"));SearchButton.click();//确认来到搜索栏详情页WebElement SearchDetails = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.breadcrumb-data.am-hide-sm-only > div > ul > li > a"));assert SearchDetails.getText().equals("首页");//返回到首页driver.navigate().back();}//输入手机public void SearchPage1(){//输入手机driver.findElement(By.cssSelector("#search-input")).sendKeys("手机");//直接点击搜索WebElement SearchButton = driver.findElement(By.xpath("//*[@id=\"ai-topsearch\"]"));SearchButton.click();//确认来到搜索栏详情页WebElement SearchDetails = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.breadcrumb-data.am-hide-sm-only > div > ul"));assert SearchDetails.getText().contains("手机搜索结果");//返回到首页driver.navigate().back();}//输入不存在的物品public void SearchPage2(){//输入abcdefgdriver.findElement(By.cssSelector("#search-input")).sendKeys("abcdefg");//直接点击搜索WebElement SearchButton = driver.findElement(By.xpath("//*[@id=\"ai-topsearch\"]"));SearchButton.click();//确认来到搜索栏详情页WebElement SearchDetails = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.breadcrumb-data.am-hide-sm-only > div > ul"));assert SearchDetails.getText().contains("abcdefg搜索结果");WebElement SearchDetails1 = driver.findElement(By.cssSelector("#search-map > div > div > ul > li:nth-child(1) > p > strong"));assert SearchDetails1.getText().contains("0");//返回到首页driver.navigate().back();}//点击第一个手机可来到商品详情页public void GoodsDetailsPage() {//点击第一个手机driver.findElement(By.xpath("/html/body/div[1]/div[1]/div[5]/div/div[4]/ul/li[1]")).click();//获取当前句柄String curWindow = driver.getWindowHandle();//获取所有句柄Set<String> allWindow = driver.getWindowHandles();for( String w : allWindow){if(w!=curWindow){driver.switchTo().window(w);}}//切换成功,获取页面信息WebElement phoneDetails = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.system-goods-detail > div.item-inform.am-container.am-radius.theme-data-edit-event > div.clearfix-right > div > div.tb-detail-hd.am-margin-bottom-xs > h1"));assert phoneDetails.getText().equals("1111");//退出当前句柄回到上个句柄driver.close();driver.switchTo().window(curWindow);}//点击最后一个手机//点击第一个手机可来到商品详情页public void GoodsDetailsPage1(){//点击最后一个手机driver.findElement(By.xpath("/html/body/div[1]/div[1]/div[5]/div/div[4]/ul/li[last()]")).click();//获取当前句柄String curWindow = driver.getWindowHandle();//获取所有句柄Set<String> allWindow = driver.getWindowHandles();for( String w : allWindow){if(w!=curWindow){driver.switchTo().window(w);}}//切换成功,获取页面信息WebElement phoneDetails = driver.findElement(By.cssSelector("body > div.body-content-container > div.body-content-formal-container > div.system-goods-detail > div.item-inform.am-container.am-radius.theme-data-edit-event > div.clearfix-right > div > div.tb-detail-hd.am-margin-bottom-xs > h1"));assert phoneDetails.getText().equals("Apple iPhone 14 Pro Max (A2896) 256GB 暗紫色 支持移动联通电信5G 双卡双待手机");//退出当前句柄回到上个句柄driver.close();driver.switchTo().window(curWindow);}
}

 5.性能测试

使用 JMeter 对 商城系统注册页面接口、商城系统登录页面接口、商城首页、个人中心页面 、我的足迹页面、我的收藏页面、商品详情页 部分接口进行性能测试:

聚合报告:

响应时间:

 

 每秒处理事务数:

测试总结

1.在线商城系统功能均能正常使用。

2.用户使用时能及时相应,且能对异常行为进行捕获

3.所有按钮点击响应及时,页面显示良好,无错别字,无遮挡或显示错误情况

其他改进点:

1.首页模块两个快捷导航框有遮挡商城图片,对用户可能造成不好的影响。

http://www.dtcms.com/a/303628.html

相关文章:

  • 信息搜集目的原则方法思路工具(二)
  • DDoS攻击防御:从5G到T级防护方案全对比
  • 利用软件定义无线USRP X410、X440 电推进无线原型设计
  • Sentinel 不同层面的流控保护
  • 【图像处理基石】基于暗光图像恢复颜色有哪些难点?
  • resnet中的Bottleneck
  • Google Doppl:重新定义虚拟试衣的AI革命
  • MCP协议全景解析:从工业总线到AI智能体的连接革命
  • 结合二八定律安排整块时间
  • 正向代理和反向代理的理解
  • 【安卓笔记】OOM与内存优化
  • 常见的JVM虚拟机的参数详解
  • OpenGL进阶系列22 - OpenGL SuperBible - bumpmapping 例子学习
  • Python动态规划:从基础到高阶优化的全面指南(3)
  • nvim tagbar安装
  • C#:基于 EF Core Expression 的高性能动态查询构建实战 —— 面向大数据量环境的查询优化方案(全是干货,建议收藏)
  • barba.js单页面应用程序
  • 基于VHDL的神经网络加速器设计实战
  • C++算法实例精讲
  • MKS E28H 0.05-100 Torr 加热 (100°C) Baratron 电容压力计,带蚀刻传感器 手侧
  • C++入门自学Day2-- c++类与对象(初识2)
  • 一文理清 Linux 软件管理核心知识:从程序组成到包管理工具
  • C语言中的数据结构--栈和队列(2)
  • VMware Workstation Pro 详细安装步骤
  • 线程安全
  • C++常见的仿函数,预定义函数,functor,二元操作函数(对vector操作,加减乘除取余位运算等 )
  • 异步通讯组件MQ
  • HTML应用指南:利用GET请求获取全国小米之家门店位置信息
  • 基于深度学习的医学图像分析:使用3D CNN实现肿瘤检测
  • hot100——第九周