当前位置: 首页 > news >正文

Selenium + Python 自动化测试18(数据驱动实现测试)

        我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。

上一篇我们讨论了数据驱动测试中如何读取Excel文件,今天我们试着进一步深入学习数据驱动。

         本篇文章我们讨论一下如何使用数据驱动思想实现测试。

1、数据驱动框架基础知识

DDT:data-driven tests 的缩写形式。unittest 没有自带数据驱动功能,可以使用DDT来实现。

使用方法说明:

1)ddt.data :装饰测试方法,参数是一些列的值,比如元组等。

2)ddt.file_data: 装饰测试方法,参数是文件名,测试数据保存在参数文件中。

3)ddt.unpack:当ddt 传递复杂的数据结构时使用

举个简单的例子说明:

先感受一下ddt的执行效果

#coding = utf-8import unittestimport ddt@ddt.ddtclass Test_exp(unittest.TestCase):def setUp(self):pass@ddt.data(1,2,3)def test_1(self,turns):print(turns)def tearDown(self):passif __name__ == '__main__':unittest.main()开始执行说找不到ddt,报错如下:

安装一下看看:

pip install ddt

再次执行成功了,如下如明显看出执行了3次,每个参数一次。

2、简单实例如登录

1)我们之前登录的写法
#输入正确的密码登录成功测试def test_login_Y(self):username = "standard_user"password = "secret_sauce"print("登录的用户名是:%s,密码是:%s"%(username,password))driver=login.Login(username,password).login()time.sleep(3)#加入断言  //*[@id="header_container"]/div[1]/div[2]/div# 验证有显示:ProductsUIResult = driver.find_element_by_xpath('//*[@id="header_container"]/div[2]/span').textself.assertEqual("Products", UIResult, "密码正确登录验证失败,fail")self.driver=driver

我们通过3组数据验证:

2)编写数据参数化的测试脚本

这里列一下上一篇文章我们写的读取Excel中数据的函数,这次要调用。

        有以上的准备条件,可以使用ddt的思路写出了简单重复测试,这里只是用户名和密码的数据不一样的用例了。

#使用unittest的框架,每个案例的标准形式@ddtclass LoginTest(unittest.TestCase):def setUp(self):print("登录测试开始")#输入正确的密码登录成功测试@data(*excel_data)def test_login_Y(self,dic):driver=login.Login(dic.get("username"),dic.get("password")).login()print("此次测试的用户名%s"%dic.get("username"))time.sleep(3)#加入断言  //*[@id="header_container"]/div[1]/div[2]/div# 验证有显示:ProductsUIResult = driver.find_element_by_xpath('//*[@id="header_container"]/div[2]/span').textself.assertEqual("Products", UIResult, "密码正确登录验证失败,fail")self.driver=driverdef tearDown(self)#浏览器退出self.driver.quit()print("登录测试结束")检查测试结果:

测试了3次对应的用户名如上图。

3)关联我们生成报告并发送邮件的执行

这里只是截图一下,具体可以参考我之前的分享内容。

执行完成以后,测试报告如下:

今天就先学习到这里吧。

每天进步一点点,加油!


http://www.mrgr.cn/news/4937.html

相关文章:

  • 哈希表--字母异位词分组
  • uni-app--》打造个性化壁纸预览应用平台(二)
  • 代码随想录算法训练营第九天| 151.翻转字符串里的单词、卡码网55.右旋转字符串 、28. 找出字符串中第一个匹配项的下标、459. 重复的子字符串
  • 如何使用Pytest进行自动化测试
  • 流苏马兜铃Aristolochia fimbriata参考基因组
  • 世上最简单的安装jenkins
  • 组合模式 详解
  • 力扣: 两数之和 梦开始的地方
  • Markdown与Word中插入图片的方法及比较
  • 为啥https比http慢
  • stm32单片机学习 - 参考手册和数据手册
  • 【vue3|第24期】深入了解useRouter:方法、属性与使用示例
  • Redis做消息队列
  • CentOS7使用Rpm方式离线安装MySQL-5.7
  • sql server 截断日志的操作
  • iOS(OC)学习第1天-怎么设置UI
  • springboot的启动流程原理
  • jenkins 禁用脚本安全性
  • 养猫家庭必备好物——宠物空气净化器,让浮毛无处可逃
  • 文件操作2(函数的专栏)