博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
selenium+python自动化测试--数据驱动
阅读量:5052 次
发布时间:2019-06-12

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

之前  中,几个账号和密码登录就要写几个用例,感觉很麻烦~,所以下面介绍一下用数据驱动实现不同用例的登录。

话不多说,直接贴代码~~

文件名称:test_ddtlogin.py

import ddtimport unittestfrom selenium import webdriverfrom common.base import Basetestdata = [    {
'user':'','psw':'','exp':'请输入手机号码'}, {
'user':'admin','psw':'','exp':'请输入密码'}, {
'user':'','psw':'666666','exp':'请输入手机号码'}, {
'user':'admin','psw':'666666','exp':'账号不存在'}]@ddt.ddtclass Testddt(unittest.TestCase): # 定位手机号 username = ("name", "loginName") # 定位密码 psw = ("name", "loginPassWord") # 定位登录按钮 loginbutton = ("id", "loginBtn") # 定位提示信息 message = ("className", "toast-message") @classmethod def setUpClass(cls): cls.driver = webdriver.Firefox() cls.baseddt = Base(cls.driver) cls.driver.get("不愿透露姓名的url") def setUp(self): self.baseddt.clear(self.username) self.baseddt.clear(self.psw) @classmethod def tearDownClass(cls): cls.driver.quit() # 加载测试数据 @ddt.data(*testdata) def test_01(self,data): username = data['user'] password = data['psw'] exp = data['exp'] #输入手机号 self.baseddt.send(self.username,username) #输入密码 self.baseddt.send(self.psw,password) #点击登录按钮 self.baseddt.click(self.loginbutton) #获取结果 result = self.baseddt.find(self.message).text print("我是结果:", result) self.assertEqual(result, exp)if __name__ == '__main__': unittest.main()

 上面代码运行多次后,发现最后一个用例执行失败了,觉得可能是缓存问题,所以还是改成下面的代码:

 

import ddtimport unittestfrom selenium import webdriverfrom common.base import Basetestdata = [    {
'user':'','psw':'','exp':'请输入手机号码'}, {
'user':'admin','psw':'','exp':'请输入密码'}, {
'user':'','psw':'666666','exp':'请输入手机号码'}, {
'user':'admin','psw':'666666','exp':'账号不存在'}]@ddt.ddtclass Testddt(unittest.TestCase): # 定位手机号 username = ("name", "loginName") # 定位密码 psw = ("name", "loginPassWord") # 定位登录按钮 loginbutton = ("id", "loginBtn") # 定位提示信息 message = ("className", "toast-message") @classmethod def setUpClass(cls): cls.driver = webdriver.Firefox() cls.baseddt = Base(cls.driver) def setUp(self): self.driver.get("不愿透露姓名的url") def tearDown(self): self.driver.delete_all_cookies() @classmethod def tearDownClass(cls): cls.driver.quit() # 加载测试数据 @ddt.data(*testdata) def test_01(self,data): username = data['user'] password = data['psw'] exp = data['exp'] #输入手机号 self.baseddt.send(self.username,username) #输入密码 self.baseddt.send(self.psw,password) #点击登录按钮 self.baseddt.click(self.loginbutton) #获取结果 result = self.baseddt.find(self.message).text print("我是结果:", result) self.assertEqual(result, exp)if __name__ == '__main__': unittest.main()

 

运行结果:

 

纯属个人思路,如有错误请在评论区指出,一定立即纠正。非常感谢~ 

读取文件操作请看下回分解?

 

转载于:https://www.cnblogs.com/yudx/p/11251596.html

你可能感兴趣的文章
使用Oracle SQL Developer 连接SQL Server
查看>>
Scss sass
查看>>
load image
查看>>
PHP之XML节点追加操作讲解
查看>>
鼠标拖动事件
查看>>
Log4j2 配置
查看>>
接口测试
查看>>
Underscore.js 入门
查看>>
IDEA设置网络代理&&Maven设置网络代理
查看>>
win7下64位系统memcache/memcached安装教程
查看>>
C#用DesignSurface实现一个简单的窗体设计器
查看>>
CUDA跟OpenCV的混合编程,注意OpenCV需要重新编译
查看>>
Team Foundation Server 2010 Performance Tuning – Lessons learned
查看>>
obj文件转换为gltf的方法
查看>>
系统运行与维护
查看>>
纯css画哆啦A梦
查看>>
SpringIOC学习一
查看>>
摄像头脸部识别 (1)opencv 抓取视频数据并保存
查看>>
[译]Django first steps Part3
查看>>
cat 参数
查看>>