แตงกวา - ตัวเลือกบรรทัดคำสั่ง
แตงกวาสามารถใช้ทดสอบระบบคอมพิวเตอร์ได้เกือบทุกชนิด จนถึงตอนนี้เราได้เห็นวิธีเรียกใช้การทดสอบโดยใช้ Eclipse IDE มีอีกวิธีหนึ่งที่เราสามารถเรียกใช้การทดสอบแตงกวาผ่านอินเทอร์เฟซบรรทัดคำสั่ง แล้วข้อดีของการทำคืออะไร?
การรันกรอบการทดสอบจาก Terminal มีข้อดีในตัวเองเช่นการลบล้างการกำหนดค่าการรันที่กล่าวถึงในโค้ด
ในการดำเนินการทดสอบแตงกวาด้วยพรอมต์คำสั่งให้ใช้ขั้นตอนต่อไปนี้หลังการกำหนดค่าระบบ
Step 1- สร้างโครงการทดสอบ Maven ชื่อ commandLine.
ไปที่ไฟล์→ใหม่→อื่น ๆ → Maven → Maven Project →ถัดไป
ระบุรหัสกลุ่ม (รหัสกลุ่มจะระบุโครงการของคุณโดยไม่ซ้ำกันในทุกโครงการ)
ระบุรหัสอาร์ติแฟกต์ (รหัสอาร์ติแฟกต์คือชื่อของ jar ที่ไม่มีเวอร์ชันคุณสามารถเลือกชื่อใดก็ได้ที่เป็นตัวพิมพ์เล็ก)
คลิกที่ Finish
เปิด pom.xml -
ไปที่ package explorer ทางซ้ายมือของ Eclipse
ขยายโครงการ CucumberTest
ค้นหา pom.xml ไฟล์.
คลิกขวาและเลือกตัวเลือกเปิดด้วย“ โปรแกรมแก้ไขข้อความ”
เพิ่มการพึ่งพาสำหรับ Selenium - สิ่งนี้จะระบุ Maven ซึ่งจะต้องดาวน์โหลดไฟล์ Selenium jar จากที่เก็บส่วนกลางไปยังที่เก็บในเครื่อง
เปิด pom.xml อยู่ในโหมดแก้ไขสร้างแท็กการอ้างอิง (<dependencies> </dependencies>) ภายในแท็กโปรเจ็กต์
ภายในแท็กการอ้างอิงให้สร้างแท็กการอ้างอิง (<dependency> </dependency>)
ระบุข้อมูลต่อไปนี้ภายในแท็กการอ้างอิง
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.47.1</version>
</dependency>
เพิ่มการพึ่งพาสำหรับ Cucumber-Java - สิ่งนี้จะระบุ Maven ซึ่งไฟล์ Cucumber จะถูกดาวน์โหลดจากที่เก็บส่วนกลางไปยังที่เก็บในเครื่อง
สร้างแท็กการอ้างอิงขึ้นมาอีกหนึ่งแท็ก
ระบุข้อมูลต่อไปนี้ภายในแท็กการอ้างอิง
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
เพิ่มการพึ่งพาสำหรับ Cucumber-JUnit - สิ่งนี้จะระบุ Maven ซึ่งจะต้องดาวน์โหลดไฟล์ Cucumber JUnit จากที่เก็บกลางไปยังที่เก็บในเครื่อง
สร้างแท็กการอ้างอิงขึ้นมาอีกหนึ่งแท็ก
ระบุข้อมูลต่อไปนี้ภายในแท็กการอ้างอิง
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
เพิ่มการพึ่งพาสำหรับ JUnit - สิ่งนี้จะระบุ Maven ซึ่งไฟล์ JUnit จะถูกดาวน์โหลดจากที่เก็บส่วนกลางไปยังที่เก็บในเครื่อง
สร้างแท็กการอ้างอิงขึ้นมาอีกหนึ่งแท็ก
ระบุข้อมูลต่อไปนี้ภายในแท็กการอ้างอิง
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
ตรวจสอบไบนารี
เมื่อแก้ไข pom.xml สำเร็จแล้วให้บันทึก
ไปที่ Project → Clean - จะใช้เวลาไม่กี่นาที
Step 2 - สร้างแพ็คเกจชื่อ "outline" ภายใต้ src / test / java
Step 3 - สร้างไฟล์ฟีเจอร์ชื่อ“ commandLine.feature”
เลือกและคลิกขวาที่โครงร่างแพ็คเกจ
คลิกที่ไฟล์ 'New'
ตั้งชื่อไฟล์เช่น“ commandLine.feature”
เขียนข้อความด้านล่างภายในไฟล์และบันทึก
Feature - เค้าโครงสถานการณ์
Scenario Outline - เข้าสู่ระบบสำหรับเว็บไซต์เครือข่ายสังคม
กำหนดให้ผู้ใช้ไปที่ Facebook
เมื่อฉันป้อนชื่อผู้ใช้เป็น "<username>" และรหัสผ่านเป็น "<password>"
จากนั้นการเข้าสู่ระบบจะไม่สำเร็จ
ตัวอย่าง
| username | password |
| username1 | password1 |
| username2 | password2 |
Note- ที่นี่ตัวอย่างคำอธิบายประกอบอธิบายถึงช่วงของอินพุตที่จะให้เมื่อดำเนินการตามสถานการณ์ สถานการณ์การทดสอบจะดำเนินการสำหรับแต่ละอินพุตที่มีให้ ดังนั้นในตัวอย่างที่กำหนดสถานการณ์ทดสอบจะดำเนินการสามครั้ง
Step 4 - สร้างไฟล์นิยามขั้นตอน
เลือกและคลิกขวาที่โครงร่างแพ็คเกจ
คลิกที่ไฟล์ 'New'
ตั้งชื่อไฟล์เป็น commandLine.java
เขียนข้อความต่อไปนี้ภายในไฟล์และบันทึก
package Outline;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import cucumber.annotation.en.Given;
import cucumber.annotation.en.Then; i
import cucumber.annotation.en.When;
public class stepdefinition {
WebDriver driver = null;
@Given("^user navigates to facebook$")
public void goToFacebook() {
driver = new FirefoxDriver();
driver.navigate().to("https://www.facebook.com/");
}
@When("^I enter Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$")
public void I_enter_Username_as_and_Password_as(String arg1, String arg2) {
driver.findElement(By.id("email")).sendKeys(arg1);
driver.findElement(By.id("pass")).sendKeys(arg2);
driver.findElement(By.id("u_0_v")).click();
}
@Then("^login should be unsuccessful$")
public void validateRelogin() {
if(driver.getCurrentUrl().equalsIgnoreCase(
"https://www.facebook.com/login.php?login_attempt=1&lwv=110")){
System.out.println("Test Pass");
} else {
System.out.println("Test Failed");
}
driver.close();
}
}
Note- ในโค้ดเราต้องกำหนดฟังก์ชันที่มีอาร์กิวเมนต์อินพุตสองตัว: ชื่อผู้ใช้หนึ่งชื่อและอื่น ๆ จะเป็นรหัสผ่าน ดังนั้นสำหรับชุดข้อมูลแต่ละชุดที่มีให้ในแท็กตัวอย่างชุดของ GIVEN เมื่อไหร่และแล้วจะถูกดำเนินการ
Step 5 - สร้างไฟล์คลาสนักวิ่ง
เลือกและคลิกขวาที่โครงร่างแพ็คเกจ
คลิกที่ไฟล์ 'New'
ตั้งชื่อไฟล์เช่น, runTest.java
เขียนข้อความต่อไปนี้ภายในไฟล์และบันทึก
package Outline;
import org.junit.runner.RunWith;
import cucumber.junit.Cucumber;
@RunWith(Cucumber.class)
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})
public class runTest { }
เปิดพรอมต์คำสั่ง
ไปที่ไดเร็กทอรีที่มีแพ็กเกจ“ commandLine” อยู่ e: \ Workspace \ LoginTest \ src> cd test \ java
เรียกใช้การทดสอบคำสั่ง mvn: คุณจะเห็นว่าสถานการณ์ทั้งหมดที่อธิบายไว้ในไฟล์คุณลักษณะได้รับการดำเนินการแล้ว (หากไม่มีข้อผิดพลาดใด ๆ ) สุดท้ายที่ด้านล่างคุณจะพบข้อมูลต่อไปนี้
ผลลัพธ์
This describes the total test run, along with failure if any.
คำสั่งก่อนหน้านี้รันทุกอย่างตามที่กล่าวไว้ในคลาส JUnit Runner อย่างไรก็ตามหากเราต้องการลบล้างการกำหนดค่าที่กล่าวถึงใน Runner ต่อไปนี้เป็นตัวอย่างบางส่วนที่ต้องทำ
ตอนนี้รันคำสั่ง mvn test - Dcucumber.options = "- help" บนพร้อมรับคำสั่ง การรันสิ่งนี้จะพิมพ์ตัวเลือกที่มีทั้งหมด
ในการรันแท็กเฉพาะให้รันคำสั่ง mvn test -Dcucumber.options = "- tags @SmokeTest" บนพร้อมรับคำสั่ง จะเรียกใช้เฉพาะแท็กซึ่งมีเครื่องหมาย @SmokeTest
ในการเปลี่ยนรูปแบบของผลลัพธ์ให้รันคำสั่ง E: \ Workspace \ LoginTest> mvn test -Dcucumber.options = "- plugin junit: target / cucumber-junit-report.xml" บน command prompt มันจะเปลี่ยนรายงาน จัดรูปแบบเป็นตัวสร้างรายงาน JUnit