Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有人能给出一个关于用testng和eclipse在SeleniumWeb驱动程序中实现脚本的最佳方法的想法?_Java_Eclipse_Selenium_Webdriver - Fatal编程技术网

Java 有没有人能给出一个关于用testng和eclipse在SeleniumWeb驱动程序中实现脚本的最佳方法的想法?

Java 有没有人能给出一个关于用testng和eclipse在SeleniumWeb驱动程序中实现脚本的最佳方法的想法?,java,eclipse,selenium,webdriver,Java,Eclipse,Selenium,Webdriver,我已经开始使用TestNg和Eclipse编写selenium web驱动程序脚本。有人能提出一些基本的想法和更好的脚本编写方法吗 目前,我正在工作一个大项目,其中有这么多的模块。我必须在所有模块中自动化一些测试用例。那么我将如何开始 1,我必须为每个模块创建单独的脚本编写类 2,既然登录脚本很常见,我如何在每个模块上重用它的脚本 有谁能分享一下关于创建类、编写脚本和运行脚本的想法吗 让我试着逐一回答您的问题: 我必须为每个模块创建单独的脚本编写类:这在很大程度上取决于您如何设计框架。现在,您的

我已经开始使用TestNg和Eclipse编写selenium web驱动程序脚本。有人能提出一些基本的想法和更好的脚本编写方法吗

目前,我正在工作一个大项目,其中有这么多的模块。我必须在所有模块中自动化一些测试用例。那么我将如何开始

1,我必须为每个模块创建单独的脚本编写类

2,既然登录脚本很常见,我如何在每个模块上重用它的脚本


有谁能分享一下关于创建类、编写脚本和运行脚本的想法吗

让我试着逐一回答您的问题:

我必须为每个模块创建单独的脚本编写类:这在很大程度上取决于您如何设计框架。现在,您的框架可以是: a。基于模块的测试框架

b。图书馆体系结构测试框架

c。数据驱动测试框架

d。关键词驱动测试框架

e。混合测试框架

f。行为驱动开发框架

如何选择一个框架?很大程度上取决于您的框架将执行的功能。例如 a。如果您的框架需要逐个测试组件/模块,那么基于模块的测试框架应该是您的方法。PageFactory使用POM是性能和最少维护方面的最佳实践之一

b。如果您的框架需要从excel工作表中读取实时数据,那么数据驱动的测试框架应该是您的方法

c。如果您重复使用许多方法进行断言,那么库体系结构测试框架应该是您的方法

d。如果您想利用各种相关框架的优点,那么混合测试框架应该是您的方法

现在,根据框架的设计,您必须为每个模块/库编写脚本/类

由于登录脚本很常见,如何在每个模块上重用其脚本??:这个问题的答案取决于具体情况。如果您遵循数据驱动测试框架递归地从excel文件中读取不同的凭据,那么最好为此创建一个单独的库

任何人都可以分享关于创建类、编写脚本和运行脚本的想法吗??:在编写类或脚本时没有什么例外。在Java/Python/C/Ruby中选择一种语言,然后创建第一个脚本。stackoverflow.com、github.com和其他外部站点中提供了大量文档

接下来,您可能希望将TestNG集成到您的框架中,该框架为使用viz注释和一些优秀的报告类提供了很大的灵活性

最后,您可以集成Maven框架,以帮助您快速收集所有必需的依赖项,从而无缝地执行框架


希望这能回答您的所有问题。

您可以使用谷歌“页面工厂”模型作为测试方法。或者,没有任何东西禁止您自己设置一个;当然,这取决于您所从事的业务/项目的性质

就我个人而言,我喜欢拥有一个TestBase类,该类包含findElement、gotoPage或typeChars等主要功能,然后根据每个测试用例创建一个类,始终扩展主TestBase,以便您可以继承其方法调用

因此,要回答您的问题:

1这实际上取决于您,但是您可以为每个测试用例编写一个类,其中每个@test注释都是一个测试步骤,这样您就可以处理依赖项和优先级

2您可以在TestBase中编写loginViaEmail方法/函数,并在@BeforeClass上的每个测试中调用它,以便在开始每个测试之前加载配置。大概是这样的:

public void loginViaEmail(String email, String pass){

driver.navigate("https://yourhomepage.com");
findElement.by.xpath(loginButton).click();
// input credentials
// click login
}
然后,您可以参加您的changePass测试/课程:

public class ChangePass extends TestBase {


    @BeforeClass
    public void intialSetup(){
    loginViaEmail("youremail@test.com", "someHardToGuessPass");
    }

    @Test public void findChangePassLink(){

    //rest of your test code
    }
}

希望这有帮助,祝你好运

请编辑问题,将其限制为特定问题,并提供足够详细的信息,以确定适当的答案。避免同时问多个不同的问题。请参阅页面以获取澄清此问题的帮助。