ctrl+shift+p disable java
1 2 3 4 5 6 7 8 9 10
| int sleepTime = 1500; driver.get("https://www.qidian.com"); Thread.sleep(sleepTime);
driver.switchTo().window(driver.getWindowHandles().toArray()[1].toString()).click(); Thread.sleep(sleepTime);
driver.switchTo().alert().accept();
|
1 2 3
| driver.findElement(By.id("")).click(); Thread.sleep(sleepTime);
|
1 2 3
| driver.findElement(By.name("")).click(); Thread.sleep(sleepTime);
|
1 2 3
| driver.findElement(By.className("")).click(); Thread.sleep(sleepTime);
|
1 2 3
| driver.findElement(By.linkText("")).click(); Thread.sleep(sleepTime);
|
1 2 3
| driver.findElement(By.xpath("")).click(); Thread.sleep(sleepTime);
|
1 2 3 4 5
| driver.findElement(By.className("search_input")).sendKeys(""); Thread.sleep(sleepTime); driver.findElement(By.className("search_btn")).click(); Thread.sleep(sleepTime);
|
1 2 3
| driver.findElement(By.xpath("")).click(); Thread.sleep(sleepTime);
|
1 2 3 4
| driver.close();
driver.switchTo().window(driver.getWindowHandles().toArray()[1].toString());
|
1 2 3 4
| Actions buildr = new Actions(driver); buildr.moveToElement(driver.findElement(By.xpath("/html/body/div[1]/section/header/div/div/div[2]/div[1]/div[1]"))).perform(); Thread.sleep(1500);
|
1 2 3
| driver.switchTo().frame("contentFrame"); driver.switchTo().defaultContent();
|

性能测试
修改线程组名称:

添加事务控制器
- 右击 Thread Group,依次选择 Add - Logic Controller - Transaction Controller,创建 Transaction Controller
- 创建完成之后,将所有请求或重要请求放入 Transaction Controller

同步定时器
- 右击重要请求,依次选择 Add - Timer - Synchronizing Timer,创建 Synchronizing Timer
- 将 Number of Simulated Users to Group by 调整至 1 ~ 10 [10]


参数化请求
右击可以参数化的请求,依次点击 Add - Config Element - CSV Data Set Config


功能测试
浏览器操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| driver.manage().window().maximize();
driver.manage().window().setSize(new org.openqa.selenium.Dimension(width, height));
driver.manage().window().setPosition(new org.openqa.selenium.Point(x, y));
driver.navigate().back();
driver.navigate().forward();
driver.navigate().refresh();
driver.close();
driver.quit();
String pageTitle = driver.getTitle(); System.out.println("Page Title: " + pageTitle);
String currentUrl = driver.getCurrentUrl(); System.out.println("Current URL: " + currentUrl);
|
获取元素信息的常用方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| org.openqa.selenium.Dimension elementSize = element.getSize(); System.out.println("Element Size: " + elementSize);
String elementText = element.getText(); System.out.println("Element Text: " + elementText);
String attributeValue = element.getAttribute("src"); System.out.println("Attribute Value: " + attributeValue);
boolean isDisplayed = element.isDisplayed(); System.out.println("Is Displayed: " + isDisplayed);
boolean isEnabled = element.isEnabled(); System.out.println("Is Enabled: " + isEnabled);
boolean isSelected = element.isSelected(); System.out.println("Is Selected: " + isSelected);
|
鼠标操作的方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| WebElement element = driver.findElement(By.id("exampleId"));
Actions actions = new Actions(driver);
actions.contextClick(element).perform();
actions.doubleClick(element).perform();
WebElement sourceElement = driver.findElement(By.id("sourceId")); WebElement targetElement = driver.findElement(By.id("targetId")); actions.dragAndDrop(sourceElement, targetElement).perform();
actions.moveToElement(element).perform();
actions.perform();
|
常用的键盘操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| WebElement element = driver.findElement(By.id("exampleId"));
element.sendKeys(Keys.BACK_SPACE);
element.sendKeys(Keys.SPACE);
element.sendKeys(Keys.TAB);
element.sendKeys(Keys.ESCAPE);
element.sendKeys(Keys.ENTER);
element.sendKeys(Keys.CONTROL, "a");
element.sendKeys(Keys.CONTROL, "c");
|
Select类
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| WebElement selectElement = driver.findElement(By.id("selectA"));
Select select = new Select(selectElement);
select.selectByIndex(2);
select.selectByValue("optionValue");
select.selectByVisibleText("Option Text");
|
弹框处理
1 2 3 4 5 6 7 8 9 10 11 12 13
| Alert alert = driver.switchTo().alert();
String alertText = alert.getText(); System.out.println("Alert Text: " + alertText);
alert.accept();
alert.dismiss();
|
滚动条操作
1 2 3 4 5 6 7 8 9
| import org.openqa.selenium.JavascriptExecutor;
String jsScript = "window.scrollTo(0, 1000);";
((JavascriptExecutor) driver).executeScript(jsScript);
String jsScript = "window.scrollTo(0, document.body.scrollHeight);";
|
ifame
1 2 3 4 5 6 7
| switchToFrame(driver, "frameReference");
switchToDefaultContent(driver);
|
多窗口切换
窗口截图
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| String screenshotPath = "C:/Users/Administrator.SC-201902031211/Desktop/abc.png";
takeScreenshot(driver, screenshotPath);
public static void takeScreenshot(WebDriver driver, String screenshotPath) { try { File screenshotFile = ((org.openqa.selenium.TakesScreenshot) driver).getScreenshotAs(org.openqa.selenium.OutputType.FILE); BufferedImage image = ImageIO.read(screenshotFile); ImageIO.write(image, "png", new File(screenshotPath)); System.out.println("截图成功,保存路径:" + screenshotPath); } catch (IOException e) { System.out.println("截图失败:" + e.getMessage()); } }
|
操作cookie
1 2 3 4 5 6 7 8 9 10
| Cookie specificCookie = getSpecificCookie(driver, "cookieName"); System.out.println("指定 cookie 值:" + specificCookie);
Set<Cookie> allCookies = getAllCookies(driver); System.out.println("所有本地 cookies:" + allCookies);
addCookie(driver, "cookieName", "cookieValue");
|
配置
账号: 1649743146@qq.com 密码:Dep520.
仓库地址: https://gitee.com/getp/web-test.git
测试用例
第一阶段,测试步骤,预期结果,编写人和执行人填自己,评审员也可以填自己或指导 老师,执行状态未执行 (不需要写实际执行结果)
测试步骤写1-2-3-4
举手找监考老师
第二阶段:执行测试,编写实际执行结果,执行状态要按实际情况来选择(未执行,执行成功,执行失败)
实际结果与预期结果不一致,要填执行失败
得分规则:发现bug。
web项目用例编写:
UI测试:界面元素,缩放,文案(内容,错别字等)–标准:
原型图
链接测试:
功能测试
从上到下:
- title icon





