您的位置:首页 > 其它

关键字驱动框架入门教程-3-识别并设计实现动作关键字

2018-02-01 15:24 567 查看
       前面一篇,我们实现了一个基于Selenium的基本的自动化脚本-登录百度账号。接下来,你需要做的事情是搭建你的测试步骤需要用动作关键字并把关键字记录在Excel表格里,然后我们会单独创建一个类来管理这些动作关键字,这样,测试脚本就很容易去调用关键字相关方法(回想一下第一篇介绍的那张原理图)。动作关键字就是,利用一个简短的单词(词语)来描述这个动作场景。

 

识别动作关键字

 

1)在IDEA上,当前项目下新建一个包,包名称为dataEngine

2)在dataEngine包下,右键选择新建文件,文件名称为dataEngine.xlsx

3)打开dataEngine.xlsx文件,把sheet1重命名为TestSteps,保存excel文件。

4)在Test Steps中创建以下列字段。

-- TestCase ID: 例如tc_001,auto_001等

-- TestScenario ID:测试场景id,例如TS_001,TS_002等

-- Description: 描述,例如打开浏览器

--
Action_Keyword:动作的描述关键字,例如openBrowser

 

      这里解释一下测试场景ID和测试用例ID的区别,测试用例,例如登录这个功能,在登录功能下有很多测试场景,例如正确用户名和错误密码登录,错误用户名和正确密码登录,这样的就是测试场景,所以上面就给了测试场景ID和测试用例ID区分出来。

       在关键字命名这块,建议尽量取一些,有逻辑和有实际意义的单词,让别人一看就明白是描述一个什么的动作场景。例如,打开测试服务器地址,关键字可以写openUrl;在输入框输入文字,可以用type或者sendKeys这样很容易理解的单词组合。

 

你的dataEngine.xlsx的内容大概是这个样子的。

 



实现动作关键字

1) 新建一个包,包的名称是config

2) 在config包下新建一个class文件,命名ActionsKeywords

3) 在ActionsKeywords类中创建多个静态方法来实现我们excel中写的这些action_keywor

上面这个java类文件具体代码如下:

package config;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

import java.util.concurrent.TimeUnit;

public class ActionsKeywords {

public static WebDriver driver;

/**
* 以下方法,我们针对dataEngine.xlsx文件中的action_keyword这列的关键字都进行封装
* 等关键字框架快设计完了,我们再来调整,读取配置文件去启动不同测试浏览器和测试地址
* 这样就不会代码写死这两个参数。
*/
public static void openBrowser() {

// 这里,我们暂时都写死用chrome来进行自动化测试
System.setProperty("webdriver.chrome.driver",".\\libs\\chromedriver.exe");
driver = new ChromeDriver();
}

public static void openUrl() {
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get("https://www.baidu.com");

}

public static void click_Login_link() {
driver.findElement(By.xpath(".//*[@id='u1']/a[text()='登录']")).click();
driver.findElement(By.id("TANGRAM__PSP_10__footerULoginBtn")).click();
}

public static void input_Username() {
driver.findElement(By.id("TANGRAM__PSP_10__userName")).sendKeys("xxxxx");
}

public static void input_Password() {
driver.findElement(By.id("TANGRAM__PSP_10__password")).sendKeys("xxxxx");
}

public static void click_Submit() {
driver.findElement(By.id("TANGRAM__PSP_10__submit")).click();
}

// 关闭浏览器并退出
public static void closeBrowser() {
driver.quit();
}
}
项目层次结构图如下



       如果你在这个时候想把之前driverScript的代码按照本篇封装的动作关键字执行,那么你还是要修改一部分代码,这个部分,在下一篇介绍,介绍如何启动driver并调用这篇写的静态的关键字方法来实现百度登录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: