上午刚把macaca的环境在公司的电脑上吧web 端的环境给搭建好,于是乎,看看网上的例子,看看官方的文档

https://macacajs.github.io/wd.py/ 可以在这个链接看到原滋原味针对python的api接口,还有例子,其实看着官方给出来的文档和例子是那么简洁通俗易懂,所以无论学什么我感觉学习官网的例子还是很重要的,搭好环境要不要实践呢,当然我们的答案是肯定的,实践出真知,动手,拿博客园的登录,和登录后在个人中心搜索为例子,算是对macaca的入门吧。

https://passport.cnblogs.com/user/signin

首先我们去查看下登录界面,

看到这个我们是不是感觉很爽啊,是的 直接id就能搞定了,这对我们初学一个工具的人来说有没有很简单,有没有很easy,那么我们第一个的登录用例的输入框的定位是不是就很好定位了,通过id就可以定位到我们的所需要的元素了,忘了还有一个断言啊,这里的断言我们就没有用id,换个定位方式吧,定位这个界面的个人资料,咋一看,classname完全可以定位,soeasy了,那么我们接着来看下登陆后去搜索园友

再次被我们发现了,这个输入框和搜索是不是还是很好定位的啊,小伙伴们都知道,那么这样是没有难度的,没有难度的,很快我们的用例就能搞定,于是乎,献上代码。

from macaca import WebDriver
import unittest
import HTMLTestRunner,time
die_arp={
'platformName':'Desktop',
'browserName':'electron'
}
server_url={
'hostname':'localhost',
'post':3456
}
class BokeyuanTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.deriver=WebDriver(die_arp,server_url)
cls.deriver.init()
cls.deriver.get('https://passport.cnblogs.com/user/signin')
@classmethod
def tearDownClass(cls):
cls.deriver.quit()
def test_login(cls):
cls.deriver.element_by_id('input1').send_keys('北漂的雷子')
cls.deriver.element_by_id('input2').send_keys('li.930423')
cls.deriver.element_by_id('signin').click()
cls.assertEqual(cls.deriver.element_by_class_name('set_profile').text,'编辑个人资料')
def test_serc(cls):
cls.deriver.element_by_id('txt_user_name').send_keys('逍遥豆')
cls.deriver.element_by_id('btn_blue').click()
cls.assertTrue('逍遥豆',cls.deriver.title)
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)

  

  运行运行,

速度是不是很快呢,看看我们的测试报告

完美,测试完毕,测试报告已出,后续实验正在进行中,Macaca不错,阿里开源

macaca测试web小例子的更多相关文章

  1. macaca 测试web(3)

    上回书说到 macaca 测试web(2)  使用ddt做参数驱动化, 有些人会说,你好low,我说怎么low呢,他说你看看你的脚本就放在一个文件里,对于我们小白来说,这看起来很乱啊,能不能给我拆分, ...

  2. macaca 测试web(2)

    还是以博客园登录为例, 可以查看上一篇上一篇 这次只测试登录,使用ddt的数据驱动,这里我博客也有记录 地址 其实我在uiautomator +python 实现安卓自动化 一文当中我已经使用过ddt ...

  3. lucene.net 3.0.3、结合盘古分词进行搜索的小例子(转)

    lucene.net 3.0.3.结合盘古分词进行搜索的小例子(分页功能)   添加:2013-12-25 更新:2013-12-26 新增分页功能. 更新:2013-12-27 新增按分类查询功能, ...

  4. Spring.Net在ASP.NET Mvc里使用的一个小例子

    就贴个小例子,就不注意格式了. 1.下载dll NuGet的下载地址:http://docs.nuget.org/docs/start-here/installing-nuget 在vs的NuGet里 ...

  5. springmvc入门的第一个小例子

    今天我们探讨一下springmvc,由于是初学,所以简单的了解一下 springmvc的流程,后续会持续更新... 由一个小例子来简单的了解一下 springmvc springmvc是spring框 ...

  6. INI配置文件分析小例子

    随手写个解析INI配置字符串的小例子 带测试 #include <iostream> #include <map> #include <string> #inclu ...

  7. JavaScript小例子:复选框全选

    JavaScript小例子:复选框全选 这只是一个小例子,很简单,但是这个功能还是很常用的: 实现后效果如图: JavaScript代码: <script type="text/jav ...

  8. Robot Framework--13 RFS+AutoItLibrary测试web上传下载

    转自:http://blog.csdn.net/tulituqi/article/details/21888059 Selenium2library在我们实际测试web页面的时候基本上已经够用了,不过 ...

  9. Robot Framework--12 RFS+AutoItLibrary测试web对话框

    转自:http://blog.csdn.net/tulituqi/article/details/21871247 Selenium2library在我们实际测试web页面的时候基本上已经够用了,不过 ...

随机推荐

  1. MS MDS系列之MDS层次结构(Hierarchy)

    在Master Data Services中,Hierarchy的作用主要用于: 对同属性成员进行分组 聚合成员用于分析和报告输出 写在开始:显示层次结构(Explicit Hierarchy)即将在 ...

  2. Linux项目自动部署

    场景:linux中自动部署项目在工作中经常遇到,快速高效的部署项目能够大幅提高工作效率.现在将项目部署的过程记录下来,以供参考,其中用到的知识点现在还有很多不很清楚,后面要好好琢磨琢磨! 1 项目部署 ...

  3. WebService中的WSDL详解 及jmeter测试

    首先简单讲解一下什么是wsdl.        一个WSDL文档通常包含8个重要的元素,即definitions.types.import.message.portType.operation.bin ...

  4. WMware虚拟机NAT模式配置网络设置Linux虚拟机固定IP

    一.主机配置 1.查看本机ip 2.给vmnet8设置固定IP和网段 3.根据vmnet8网段设置VMware NAT模式网段 4.点击NAT设置网关 二.启动虚拟机 网络设置如下: 这个地址值在这个 ...

  5. 【整理】01. Fiddler 杂记

    抓手机包步骤: Tools -- Fiddler Options -- Connections (默认)Fiddler listens on port:8888 (勾选)Allow remote co ...

  6. h5 录音

    得益于前辈的分享,做了一个h5录音的demo.效果图如下: 点击开始录音会先弹出确认框: 首次确认允许后,再次录音不需要再确认,但如果用户点击禁止,则无法录音: 点击发送 将录音内容发送到对话框中.点 ...

  7. 给View添加手势,防止点击View上其他视图触发点击效果

    在开发过程中,我们可能会遇到这个问题. 当我们给一个view添加了手势,但是我们又不想点击view上面的视图也触发手势.如下图: 我们在红色view上添加了手势,但是又不想点击黄色view也触发.其实 ...

  8. Luogu P2802 回家

    题目描述 小H在一个划分成了n*m个方格的长方形封锁线上. 每次他能向上下左右四个方向移动一格(当然小H不可以静止不动), 但不能离开封锁线,否则就被打死了. 刚开始时他有满血6点,每移动一格他要消耗 ...

  9. 三菱Q系列PLC基本指令讲解

    1.数据传送指令MOV和MOVP,格式为 MOV    SRC1    DES1     表示条件接通,将SRC1的值传送到DES1寄存器中,带P的表示只在条件接通的上升沿指令执行一个扫描周期,不带P ...

  10. JavaScript原型及继承

    一.浅谈原型 首先我们要知道创建对象的方法有两种: 1.通过字面量的方式直接创建 var obj = { name:'baimao', age:21 } 2.通过构造函数创建对象 function P ...