博客
关于我
macaca 测试web(2)
阅读量:796 次
发布时间:2023-02-06

本文共 1723 字,大约阅读时间需要 5 分钟。

使用ddt数据驱动测试登录功能 - 实践案例

引言

本文将介绍如何使用ddt数据驱动测试框架进行登录功能测试。通过实际案例展示测试用例设计与执行过程,探讨其优势和应用场景。

测试用例设计

本次测试聚焦登录功能的常见错误情况,设计了多组测试数据。通过这些数据,验证系统能够正确处理用户输入,提供友好提示。

测试数据

login_data = [    {'username': '北漂的', 'password': 'li1213456', 'id': 'tip_btn', 'assert': '该用户不存在'},    {'username': '', 'password': 'li123456', 'id': 'tip_input1', 'assert': '请输入登录用户名'},    {'username': '', 'password': '', 'id': 'tip_input1', 'assert': '请输入登录用户名'},    {'username': '', 'password': 'li123456', 'id': 'tip_input1', 'assert': '请输入登录用户名'},    {'username': '北漂的雷子', 'password': 'li123456', 'id': 'tip_btn', 'assert': '用户名或密码错误'},    {'username': '北漂的雷子', 'password': '', 'id': 'tip_input2', 'assert': '请输入密码'},    {'username': '北漂的雷子', 'password': '####', 'id': 'feed_recent', 'assert': '最新动态'},]

测试代码实现

基于上述数据,编写了一个测试类,使用Macaca框架执行登录测试。以下是代码示例:

import unittestfrom macaca import WebDriverimport timefrom BSTestRunner import BSTestRunnerclass BokeyuanTest(unittest.TestCase):    def setUp(self):        self.driver = WebDriver({'platformName': 'Desktop', 'browserName': 'electron'})        self.driver.init()        self.driver.get('https://passport.cnblogs.com/user/signin')    def tearDown(self):        self.driver.quit()    @ddt.data(*login_data)    def test_login(self, login_data):        self.driver.element_by_id('input1').send_keys(login_data['username'])        self.driver.element_by_id('input2').send_keys(login_data['password'])        self.driver.element_by_id('signin').click()        time.sleep(1)        self.assertTrue(self.driver.element_by_id(login_data['id']).text, login_data['assert'])

测试结果

运行上述测试用例,确保所有测试数据正确执行。Macaca框架的优势在于快速执行测试,减少开发和维护成本。

实践感受

通过本次测试实践,验证了ddt数据驱动测试的有效性。Macaca框架运行速度快,能够快速识别问题,适合快速迭代开发环境。未来工作中,将优化测试定位,提升测试效率。

转载地址:http://roufk.baihongyu.com/

你可能感兴趣的文章
Mysql order by与limit混用陷阱
查看>>
mysql order by多个字段排序
查看>>
MySQL Order By实现原理分析和Filesort优化
查看>>
mysql problems
查看>>
mysql replace first,MySQL中处理各种重复的一些方法
查看>>
MySQL replace函数替换字符串语句的用法(mysql字符串替换)
查看>>
mysql replace用法
查看>>
Mysql Row_Format 参数讲解
查看>>
mysql select, from ,join ,on ,where groupby,having ,order by limit的执行顺序和书写顺序
查看>>
MySQL Server 5.5安装记录
查看>>
mysql server has gone away
查看>>
mysql skip-grant-tables_MySQL root用户忘记密码怎么办?修改密码方法:skip-grant-tables
查看>>
mysql slave 停了_slave 停止。求解决方法
查看>>
MySQL SQL 优化指南:主键、ORDER BY、GROUP BY 和 UPDATE 优化详解
查看>>
MYSQL sql语句针对数据记录时间范围查询的效率对比
查看>>
mysql sum 没返回,如果没有找到任何值,我如何在MySQL中获得SUM函数以返回'0'?
查看>>
mysql sysbench测试安装及命令
查看>>
mysql Timestamp时间隔了8小时
查看>>
Mysql tinyint(1)与tinyint(4)的区别
查看>>
MySQL Troubleshoting:Waiting on query cache mutex
查看>>