macaca 测试web(3)
来源:互联网 发布:淘宝学校排名 编辑:程序博客网 时间:2024/05/29 15:12
上回书说到 macaca 测试web(2) 使用ddt做参数驱动化, 有些人会说,你好low,我说怎么low呢,他说你看看你的脚本就放在一个文件里,对于我们小白来说,这看起来很乱啊,能不能给我拆分,拆分,于是乎,你有需求,我有方案,你有你的需求,我有我的方案,我的方案会满足你的需求, 你是产品经理,我是测试,我来给你拆分,拆分,
那么我们先看看上节课的脚本,
import unittestfrom macaca import WebDriverimport timeimport BSTestRunnerimport ddtlogin_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':'最新动态'},]die_arp={ 'platformName':'Desktop', 'browserName':'electron'}server_url={ 'hostname':'localhost', 'post':3456}@ddt.ddtclass BokeyuanTest(unittest.TestCase): def setUp(self): self.deriver=WebDriver(die_arp,server_url) self.deriver.init() self.deriver.get('https://passport.cnblogs.com/user/signin') def tearDown(self): self.deriver.quit() @ddt.data(*login_data) def test_login(self,login_data): self.deriver.element_by_id('input1').send_keys(login_data['username']) self.deriver.element_by_id('input2').send_keys(login_data['password']) self.deriver.element_by_id('signin').click() time.sleep(1) self.assertTrue(self.deriver.element_by_id(login_data['id']).text,login_data['assert'])if __name__ == '__main__': suite = unittest.TestSuite() now = time.strftime('%Y-%m%d', time.localtime(time.time())) report_dir = r'%s.html' % now suite.addTests(unittest.TestLoader().loadTestsFromTestCase(BokeyuanTest)) re_open = open(report_dir, 'wb') runner = BSTestRunner.BSTestRunner(stream=re_open, title='demo by macaca', description='测试结果') runner.run(suite)
哪里能拆,哪里能拆,雷子你又骗我,我没有,来来,我给你分析分析,die_arp,server_url,login_data这个是不是参数的,那么我们可不可以对这个进行拆分呢,答案是肯定的,是可以的,那么来来,我们来看看,看看我的拆分思路,
创建一个新文件,我给他起名config.py
来来上config.py的代码
die_arp={ 'platformName':'Desktop', 'browserName':'electron'}server_url={ 'hostname':'localhost', 'post':3456}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':'最新动态'},]
哦哦,这样啊,那你来给我看看你的脚本
来来,脚本来了
from macaca import WebDriverimport unittestimport HTMLTestRunner,timeimport ddtfrom config import die_arp,server_url,login_data@ddt.ddtclass BokeyuanTest(unittest.TestCase): def setUp(self): self.deriver=WebDriver(die_arp,server_url) self.deriver.init() self.deriver.get('https://passport.cnblogs.com/user/signin') def tearDown(self): self.deriver.quit() @ddt.data(*login_data) def test_login(self,login_data): self.deriver.element_by_id('input1').send_keys(login_data['username']) self.deriver.element_by_id('input2').send_keys(login_data['password']) self.deriver.element_by_id('signin').click() time.sleep(1) self.assertTrue(self.deriver.element_by_id(login_data['id']).text,login_data['assert'])if __name__ == '__main__': suite = unittest.TestSuite() now = time.strftime('%Y-%m%d', time.localtime(time.time())) report_dir = r'%s.html' % now suite.addTests(unittest.TestLoader().loadTestsFromTestCase(BokeyuanTest)) re_open = open(report_dir, 'wb') runner = HTMLTestRunner.HTMLTestRunner(stream=re_open, title='demo by macaca', description='测试结果') runner.run(suite)
小伙伴书,我不信,你这么运行可以成功,来来,代码来了,小伙子,看好了,光说你不信,来来,run一下
oh,这成功了吗,不信,你给我看看你的测试报告
看到了吗,还信不信,满足不满足你的需求,不满足,不满足,那你要干啥,那不是还有可以提出来的吗,哪里,哪里告诉我,我看到了,我看到了,定位的,定位的。
oo 那么我们再来建一个新的文件,我们叫他page.py,上代码,这么简单
page_data={ 'username':'input1', 'password':'input2', 'login':'signin',}
那你来让我看看你的代码,来来,代码来了
from macaca import WebDriverimport unittestimport HTMLTestRunner,timeimport ddtfrom config import die_arp,server_url,login_datafrom page import page_data@ddt.ddtclass BokeyuanTest(unittest.TestCase): def setUp(self): self.deriver=WebDriver(die_arp,server_url) self.deriver.init() self.deriver.get('https://passport.cnblogs.com/user/signin') def tearDown(self): self.deriver.quit() @ddt.data(*login_data) def test_login(self,login_data): self.deriver.element_by_id(page_data['username']).send_keys(login_data['username']) self.deriver.element_by_id(page_data['password']).send_keys(login_data['password']) self.deriver.element_by_id(page_data['login']).click() time.sleep(1) self.assertTrue(self.deriver.element_by_id(login_data['id']).text,login_data['assert'])if __name__ == '__main__': suite = unittest.TestSuite() now = time.strftime('%Y-%m%d', time.localtime(time.time())) report_dir = r'%s.html' % now suite.addTests(unittest.TestLoader().loadTestsFromTestCase(BokeyuanTest)) re_open = open(report_dir, 'wb') runner = HTMLTestRunner.HTMLTestRunner(stream=re_open, title='demo by macaca', description='测试结果') runner.run(suite)
config.py保持不变
来来,小伙运行下:
我要看测试报告
小伙你弄的不错了,小伙,今天的需求到这里,到这里,你可以下班休息了。
oo,太让我开心了。、
阅读全文
0 0
- macaca 测试web(3)
- macaca 测试web(3)
- Macaca自动化测试框架
- Macaca之测试用例(Node.JS版)
- Macaca之测试用例(Java版)
- macaca
- macaca
- Macaca Macaca 实现 IOS Monkey 测试 (支持 macaca2.x 版本)
- Macaca自动化测试Android和IOS应用
- 自动化测试框架macaca python版本第一篇demo
- Macaca之2.0版本(iOS)完全安装手册
- Macaca 面向多端的自动化测试工具基于Python搭建详解 --Android、IOS搭建步骤
- Macaca+HTMLTestRunner测试报告模式修改,基于python unittest 测试框架扩展
- web测试工具对比--自动化功能测试(3)
- web测试总结3
- Web 测试(一)
- Macaca之常见参数
- Macaca之uirecorder使用
- linux的一些简单命令
- 以太网交换机中FID的概念和作用
- tpcc-mysql 基准压测问题
- ie兼容性问题,以及js书写习惯。
- javascript中的字符串、对象和数组的获取方式<基础>
- macaca 测试web(3)
- 树莓派学习
- C结构体和C++结构体的区别
- order by 语句
- ssh框架整合
- pc端弹出层滚动外层也滚动问题
- 7天玩转云服务器
- Microsoft Project 组件Aspose.Tasks V17.8发布 | 附下载
- (未解决)牛客 题库 STL中的unordered_map和priority_queue使用的底层数据结构分别是什么?()