上午刚把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. ASP.NET MVC5 使用MiniProfiler 监控MVC性能

    MiniProfiler ,一个简单而有效的迷你剖析器,可以有效的实时监控页面.通过直接引用.Ajax.Iframe形式访问的其它页面进行监控,监控内容包括数据库内容,并可以显示数据库访问的SQL. ...

  2. 【Python】debug工具-pdb(转)

    Debug功能对于developer是非常重要的,python提供了相应的模块pdb让你可以在用文本编辑器写脚本的情况下进行debug. pdb是python debugger的简称. 常用的一些命令 ...

  3. 一步一步学习Vue(十一)

    本篇继续学习vuex,还是以实例为主:我们以一步一步学Vue(四)中讲述的例子为基础,对其改造,基于vuex重构一遍,这是原始的代码: todolist.js ; (function () { var ...

  4. POJ3268 Silver Cow Party Dijkstra最短路

    Description One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to atten ...

  5. NYOJ--122--Triangular Sums

    Triangular Sums 时间限制:3000 ms  |  内存限制:65535 KB 难度:2   描述 The nth Triangular number, T(n) = 1 + - + n ...

  6. mysql 查询性能优化第一章 为什么查询速度会慢

    一 为什么查询速度会慢 在尝试编写快速的查询之前,咱们需要清除一点,真正重要的是响应时间.如果把查询看成是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间.如果要有 优化查询,实际上要 ...

  7. [STM32F429-DISCO-HAL]4.Uart 的使用

    今天来学习一下最常用的外设之一USART. 首先是硬件的连接,我们需要至少三根线,GND,TX,RX.参阅datasheet.默认的USART1_TX和USART1_RX的引脚如下图 关于HAL dr ...

  8. Git 深入浅出

    如果你是一个开发人员,想用上这个世界上目前最先进的分布式版本控制系统,那么,赶快开始学习吧!(耐心读下去,收获满满) Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git ...

  9. 马的遍历 洛谷 p1443

    题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入输出格式 输入格式: 一行四个数据,棋盘的大小和马的坐标 输出 ...

  10. shell脚本报错:"[: =: unary operator expected"

    shell脚本报错:"[: =: unary operator expected" 在匹配字符串相等时,我用了类似这样的语句: if [ $STATUS == "OK&q ...