目录
一、自动化测试框架对比
二、对比与选型
三、测试框架实例
1.Unnitest + DDT
2.Robot Framwork(Python)
3.TestNG(Java)
框架 |
优点 |
缺点 |
---|---|---|
Unnitest + DDT(Python) |
|
|
Robot Framwork(Python) |
|
|
TestNG(Java) |
|
|
综上所述,从项目需求和技术栈两个方面考虑,TestNG或Robot Framework支持更多功能和多种测试类型,Unnittest相对来说仅支持简单单元测试或集成测试,从长远的测试体系建设来看,前者是更优的选择。
使用 Unittest + DDT 编写的测试用例实例:
功能点:登录页面,包含用户名和密码的输入框以及一个登录按钮。我们需要编写一个测试用例,来测试不同的用户名和密码组合是否能够成功登录。
(1)安装DDT库,使用以下命令进行安装: ``` pip install ddt ```
(2)编写一个测试用例,使用@ddt装饰器来标记测试方法,并使用@data和@unpack装饰器来提供测试数据。
以下是一个示例代码:
|
在上面的代码中,我们使用了@data和@unpack装饰器来提供测试数据。每个元组代表一个测试数据,元组中的第一个元素是用户名,第二个元素是密码。在测试方法中,我们首先打开登录页面,然后输入用户名和密码,点击登录按钮,最后验证登录是否成功。
这个实例中,我们使用了DDT库来提供测试数据,可以轻松地测试多种情况下的登录行为。
当涉及到复杂场景时,Robot Framework可以很好地处理。使用Robot Framework编写测试用例的具体实例:
功能点:一个网站的注册功能,要求用户输入用户名、电子邮件、密码和确认密码。在这个场景中,我们需要测试以下几个方面:
1. 用户名、电子邮件、密码和确认密码都必须填写。
2. 用户名和电子邮件必须是唯一的。
3. 密码和确认密码必须匹配。
4. 用户名、电子邮件和密码必须符合一定的格式要求。
以下是一个示例代码:
|
在这个例子中,我们使用SeleniumLibrary打开浏览器,输入测试数据并单击注册按钮。我们还使用“Wait Until Page Contains”关键字来等待页面加载完毕并检查页面上是否出现了特定的文本。使用“Tags”来标记每个测试用例,以便在运行测试时可以选择性地运行它们。
测试点:一个电商网站的购物车功能,其中包括以下几个测试步骤:
1. 用户登录网站
2. 用户搜索商品并添加到购物车
3. 用户查看购物车并验证商品信息
4. 用户删除购物车中的商品
下面是一个示例代码:
|
该用例使用TestNG的@Test注释来标记每个测试方法,并使用priority属性来指定测试方法的执行顺序。还使用Assert类验证每个测试步骤是否成功执行,确保购物车功能的各个方面都得到正确的测试和验证。