自动化测试,特别是UI的自动化测试。 是很多做黑匣子功能测试的同学,进入自动化测试最直观的方法之一。 关于手工测试和自动化测试的优劣,网上有很多讨论,所以这里不进行讨论。 但是,让测试人员释放生产力,提高效率,集中精力于最重要的核心业务逻辑和测试设计,是所有测试团队都必须关注的。 因此,在适当的范围内进行自动化测试可以提高整个测试团队的工作效率。
对于Selenium,这是一个浏览器APP应用程序测试工具。 之所以入选WebUI自动化测试,主要是因为它有以下两大优势:
1 .直接在浏览器中运行时,可以像实际用户那样模拟最终用户交互,并从最终用户的角度测试APP应用程序。 (这一点类似于黑匣子的功能测试吧。 )
可以在Windows、Linux和MAC OS的Internet Explorer、Chrome和Firefox上运行。 其他测试工具覆盖不了这么多平台。 (嗯,多方面的人) ) ) ) ) )。
关于Java语言,我想说只要用你最擅长的就行了。 好的测试人员不应该被开发语言所束缚。 不管是Java/Python/Ruby/C#就你所知,尽量用它吧。 语言只是工具。
接下来,我们慢慢了解一些东西,然后一点一点地写东西,认识自动化测试框架是什么。
PS:是阅读本文的学生,希望具有JAVA语言编程基础,了解基本的JAVA语法和数据结构,同时了解Selenium的基本API。
在写这个框架之前,我们必须明确我们主要操作的对象是什么。 -------页面元素。
使用selenium时,必须了解java的基本操作。 例如,使用以下代码:
驱动程序. find element (by.XPath (/html/body/div/div [2]/form/button ) ).click );
其中,驱动程序意味着定义的web驱动程序,findElement是名为驱动程序的对象调用的方法-----是查找页面元素的方法,By.xpath是查找页面元素的方法。 ((/html/body/div/div ) ) 2
. click ) ),则在找到页面元素后单击操作-------。
那么,在这里想想吧。 在常规黑匣子功能测试中,当你想去网页上的某个地方点击或输入字符时
我们一般这么说。 “用户名输入admin。 密码是abcd”。
但是,在测试的代码中,实际上,“找到页面元素ID为UserId的元素,使用sendKeys方法,找到参数为admin,页面元素ID为Password的元素,使用sendKeys方法,然后选择参数
需要解决的问题:
用户名--------------找到页面元素ID为UserId的元素(代码),admin ) (我们说过)------ -使用sendkeys方法,参数为admin。 (代码)
查找一个页面元素需要一些元素、查找方法、查找参数和等待时间。 另外,为了让我们用代码明白我们说的话,需要命名用来教代码。
我们需要自己定义类。 这个类是页面元素类。 上面的说明知道需要在这个类中定义的基本变量。 (定位方法、路径、名称) )另外,因为查找路径需要时间,所以添加时间。
package webui.xUtils;
公共类位置{
私有字符串路径; //-----路径
私有字符串位置名称; //------位置名称是我们通常意义上的称呼。 例如,用户名输入框
隐私类型; //定位方法
隐私等待; //等待时间
//selenium的基本8种定位方法。
公共枚举类型{
xpath,id,name,className,cssSelector,tagName,partialLinkText,linkText
}
公共字符串获取路径
返回路径;
}
公共语音路径(字符串路径) {
this.path=path;
}
公共字符串获取位置名称(
返回位置名称;
}
publicvoidsetpositionname (stringpositionname )。
this.positionName=positionName;
}
公共by type gettype
返回类型;
}
公共语音设置类型(字节类型) {
this.type=type;
}
公共位置(字符串路径,ByType type,字符串位置名称) {
super (;
this.path=path;
this.positionName=positionName;
this.type=type;
}
//这被认为是针对iframe的
公共位置(字符串路径,字符串位置名称)。
super (;
this.path=path;
this.positionName=positionName;
}
公共位置(字符串路径,int waitSec,ByType type,字符串位置名称) {
super (;
this.path=path;
this.waitSec=waitSec;
this.positionName=positionName;
this.type=type;
}
公共int网关(
返回等待;
}
公共语音服务(intwaitsec ) {
this.waitSec=waitSec;
}
}
使用上面的代码定义了第一个Position类。 这就是我们要找的页面元素。