web自动化测试框架搭建( Java+Cucumber+Gradle) _Mac_3

原创 2018年04月16日 17:56:16

1. 创建一个Gradle project

file-->new-->Other-->Gradle Project


2. 修改build.gradle

      // plugin

  apply plugin: 'java'

  apply plugin: 'eclipse'

  apply plugin: 'idea'

      // repositories

           repositories { 

             mavenCentral()

            }

      // configurations

           configurations {

            cucumberRuntime {

              extendsFrom testRuntime

               }

            }  

     // dependencies

          dependencies {

               compile 'org.springframework:spring-context:4.2.1.RELEASE'

             compile 'log4j:log4j:1.2.17'

             compile 'junit:junit:4.12'

             compile 'org.apache.commons:commons-lang3:3.0'

             compile 'org.seleniumhq.selenium:selenium-java:3.4.0'

             compile 'info.cukes:cucumber-core:1.1.2'

             compile 'info.cukes:cucumber-java:1.1.2'

             compile 'info.cukes:cucumber-junit:1.1.2'

            }

      // create gradle task,verify env is ok

           task helloWorld << {

             println("hello world")   

            }

3. 验证环境

     1). cd /Users/mobiletest-26/eclipse-workspace/FirstGradle

        2). gradle build

        3). gradle helloWorld

     如果可以在命令行中看到输出 hello world,那么搭建的环境是ok的

4. Gradle java项目必须按照一定的格式构建请按照下图创建目录

     示例:注册一个百度账号
    

      1). 在build.gradle中新建一个gradle task

         task baidu() {

                 dependsOn assemble, compileTestJava

                 doLast {

                      javaexec {

                      main = "cucumber.api.cli.Main"

                      classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output            

                      args = ['-f', 'pretty', '--glue', 'gradle.cucumber', 'src/test/java/resources/cucumber/baiduAccount.feature']   

                       }

                   }

              }   

      2). 在resources/cucumber下新建一个feature文件

        

         Feature: Register a baiDu user 

             @Test

             Scenario Outline: Register two new user in baidu  

        Given the page is open "https://passport.baidu.com/v2/?reg&tt=1521992892277&overseas=undefined&gid=B2CD3CB-E56D-4A02-A21B-D1ED22B752A6&tpl=mn&u=https%3A%2F%2Fwww.baidu.com%2F" 

      And I want to set my login in account as "<userName>"

      When I want to set my register mobile number as "<mobileNumber>"

      Then Set a register pass word as "<passWord>"

     Examples: 

         | userName       | passWord | mobileNumber|

 | Alice1234        | 1q2w3e4r |18909204520  |

 | Alice12345      | 1q2w3e4r |18909204521  |

 | Alice123456    | 1q2w3e4r |18909204522  |

      3). 在/src/test/java下新建一个BasicStepDefs.java

          package gradle.cucumber;


          import cucumber.api.java.After;

          import cucumber.api.java.Before;

          import cucumber.api.java.en.Given;

          import cucumber.api.java.en.Then;

          import cucumber.api.java.en.When;

          import org.openqa.selenium.By;

          import org.openqa.selenium.WebDriver;

          import org.openqa.selenium.JavascriptExecutor;

          import org.openqa.selenium.WebElement;

          import org.openqa.selenium.chrome.ChromeDriver;

          import org.openqa.selenium.interactions.Action; 

          import org.openqa.selenium.interactions.Actions;


      public class BasicStepDefs { 

 WebDriver driver = null;

 public void initializeDriver() {

driver = new ChromeDriver();

// take chrome to front window.

String parent_window = driver.getWindowHandle();

driver.switchTo().window(parent_window);

 }

/*

* Register a baiDu account feature steps

*/

@Given("^the page is open \"([^\"]*)\"$")

public void the_page_is_open(String page) throws Throwable {

initializeDriver();

driver.get(page);

}

@Given("^I want to set my login in account as \"([^\"]*)\"$")

public void i_want_to_set_my_login_in_account_as(String arg1) throws Throwable {

WebElement name = driver.findElement(By.name("userName"));

name.sendKeys(arg1);

}

@When("^I want to set my register mobile number as \"([^\"]*)\"$")

public void i_want_to_set_my_register_mobile_number_as(String mobileNumber) throws Throwable {

WebElement mobile;

mobile = driver.findElement(By.cssSelector("#TANGRAM__PSP_3__phone"));

mobile.sendKeys(mobileNumber);

}

@Then("^Set a register pass word as \"([^\"]*)\"$")

public void set_a_register_pass_word_as(String passWord) throws Throwable {

WebElement pw = driver.findElement(By.id("TANGRAM__PSP_3__password"));

pw.sendKeys(passWord);

}

@After

public void cleanUp() {

driver.close();

             }

        }

4). 在/src/test/java下新建一个RunCukesTest.java

      package gradle.cucumber;
      import cucumber.api.CucumberOptions;
      import cucumber.api.junit.Cucumber;
      import org.junit.runner.RunWith;

     @RunWith(Cucumber.class)
     @CucumberOptions(tags = {"@Test"})
     public class RunCukesTest {

      }


  5). 验证

     Mac终端

     -->cd /Users/mobiletest-26/eclipse-workspace/FirstGradle

      -->gradle build

      -->gradle baidu

6). Report


5. 总结

    1). 在验证scenario时,要修改build.gradle 里面的task下的feature路径

     2). 修改RunCukesTest中的tag

    

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunyanlys/article/details/79962101

web自动化测试框架搭建( Java+Cucumber+Gradle) _Mac_2

一. 安装Gradle1. 使用ruby安装Mac的包管理器homebrew/usr/bin/ruby -e &quot;$(curl -fsSL https://raw.githubusercont...
  • sunyanlys
  • sunyanlys
  • 2018-04-13 16:32:04
  • 18

web自动化测试框架搭建( Java+Cucumber+Gradle) _Mac_1

一.  Gradle的介绍1. Gradle是一个基于Apache ANT和Apache Maven概念的项目自动化构建工具。2. Gradle抛弃Maven基于XML的繁琐配置,使用的是Groovy...
  • sunyanlys
  • sunyanlys
  • 2018-04-17 09:44:21
  • 20

WEB自动化测试-RobotFramework验收测试框架搭建

  • 2014年05月19日 15:54
  • 62.07MB
  • 下载

Web自动化测试框架搭建

  • 2014年05月19日 15:59
  • 35.16MB
  • 下载

Web自动化测试三:selenium框架搭建

1、安装eclips,下载selenium-java包,下载地址http://docs.seleniumhq.org/download/ 解压selenium-java包,这个包里面包含四部分,如下图...
  • u011485276
  • u011485276
  • 2017-07-20 09:04:27
  • 245

使用Selenium实现基于Web的自动化测试

转载自:https://www.ibm.com/developerworks/cn/web/1209_caimin_seleniumweb/ Selenium 是一个用于 Web 应用程序测试的工具...
  • tanya0925
  • tanya0925
  • 2016-10-27 10:45:17
  • 1431

Web自动化测试一:Eclipse+TestNG单元测试框架搭建

Eclipse+TestNG单元测试框架搭建 网上有很多种办法,我试了几种,最后是方法2完成搭建工作,详细说明如下...
  • u011485276
  • u011485276
  • 2017-06-29 10:04:46
  • 202

关于web自动化测试的一些自己的思考和总结

未来工作发展的一些想法。 1.关于自动化测试。 自动化测试,目前可以用selenium可以写出一些符合测试流程的测试脚本。但是还是存在比较多的技术难题。 问题一,验证码,之前学习的验证码...
  • qq1124794084
  • qq1124794084
  • 2016-05-03 14:06:09
  • 2597

从手工测试转型web自动化测试继而转型成专门做自动化测试的学习路线。

   在开始之前先自学两个工具 商业web自动化测试工具请自学QTP;QTP的学习可以跳过,我是跳过了的。 开源web自动化测试工具请自学Selenium;我当年是先学wati...
  • lsd200624101033
  • lsd200624101033
  • 2016-05-09 16:28:09
  • 838

Web自动化测试架构设计与实现

布式计算将网络服务带到世界的每一个角落,这些服务又大都部署在Web应用系统中。如何保障高质量软件或服务则是个突出的问题,其实软件测试从来就不应该被轻视。对于一个复杂的web应用程序系统需要测试的方面太...
  • ccjjyy
  • ccjjyy
  • 2011-01-10 22:31:00
  • 4206
收藏助手
不良信息举报
您举报文章:web自动化测试框架搭建( Java+Cucumber+Gradle) _Mac_3
举报原因:
原因补充:

(最多只允许输入30个字)