在开始自动化时,您可能会遇到各种可能包含在自动化代码中的方法,技术,框架和工具。有时,与提供更好的灵活性或解决问题的更好方法相比,这种多功能性导致代码更加复杂。在编写自动化代码时,重要的是我们能够清楚地描述自动化测试的目标以及我们如何实现它。话虽如此,编写“干净的代码”以提供更好的可维护性和可读性很重要。编写干净的代码也不是一件容易的事,您需要牢记许多最佳实践。以下主题突出显示了编写更好的自动化代码应获得的8条银线。
1.命名约定
当我们从手动转向自动化或实际上以任何编程语言编写代码时,这确实是要牢记的经验法则之一。遵循正确的命名约定有助于更轻松地理解代码和维护。此命名约定暗含变量,方法,类和包。例如,您的方法名称应特定于其用途。“ Register_User()”方法描述了在该方法中显示用户注册的方法。明确定义的方法名称增加了脚本的易于维护和可读性。这同样适用于变量命名。我注意到许多人提到变量为a,b,c等,甚至将Web元素称为Weblelement1,Webelement2等。这样一来,用户看不到变量名与预期的一样。
以下是显示命名错误的示例:
public void Register_User() throws InterruptedException
{
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
driver.get("https://www.lambdatest.com/ ");
driver.manage().window().maximize();
WebElement web1= driver.findElement(By.xpath("//a[text()='Free Sign Up']"));
web1.click();
WebElement web2=driver.findElement(By.xpath("//input[@name='organization']"));
web2.sendKeys("LambdaTest");
WebElement web3=driver.findElement(By.xpath("//input[@name='first_name']"));
web3.sendKeys("Test");
WebElement web4=driver.findElement(By.xpath("//input[@name='last_name']"));
web4.sendKeys("User");
WebElement web5=driver.findElement(By.xpath("//input[@name='email']"));
web5.sendKeys("sadhvi.singh@navyuginfo.com");
WebElement web6=driver.findElement(By.xpath("//input[@name='password']"));
web6.sendKeys("TestUser123");
WebElement web7=driver.findElement(By.xpath("//input[@name='phone']"));
web7.sendKeys("9412262090");
WebElement web8=driver.findElement(By.xpath("//button[text()='SIGN UP']"));
web8.click();
Thread.sleep(3500);
}
上面的代码显示了“ method1”如何不向用户提供任何线索,就像该方法的确切作用一样。另外,所有的web元素都通过web1,web2等表示。用户无法识别哪个Web元素捕获了哪个字段。
对于上述相同的代码,可以如下标记正确的表示方式:
public void Register_User() throws InterruptedException
{
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
driver.get("https://www.lambdatest.com/ ");
driver.manage().window().maximize();
WebElement link= driver.findElement(By.xpath("//a[text()='Free Sign Up']"));
link.click();
WebElement organization=driver.findElement(By.xpath("//input[@name='organization']"));
organization.sendKeys("LambdaTest");
WebElement first_name=driver.findElement(By.xpath("//input[@name='first_name']"));
first_name.sendKeys("Test");
WebElement last_name=driver.findElement(By.xpath("//input[@name='last_name']"));
last_name.sendKeys("User");
WebElement email=driver.findElement(By.xpath("//input[@name='email']"));
email.sendKeys("sadhvi.singh@navyuginfo.com");
WebElement password=driver.findElement(By.xpath("//input[@name='password']"));
password.sendKeys("TestUser123");
WebElement phone_number=driver.findElement(By.xpath("//input[@name='phone']"));
phone_number.sendKeys("9412262090");
WebElement button=driver.findElement(By.xpath("//button[text()='SIGN UP']"));
button.click();
Thread.sleep(3500);
String url= driver.getCurrentUrl();
assertEquals("fail- unable to register", url, "https://accounts.lambdatest.com/user/email-verification");
}
在这里,方法名称’Register_User’通过名称明确定义了用户,指示该方法包含与用户注册相关的代码。同样,所有Web元素或变量都具有