macaca测试web小例子
上午刚把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小例子的更多相关文章
- macaca 测试web(3)
上回书说到 macaca 测试web(2) 使用ddt做参数驱动化, 有些人会说,你好low,我说怎么low呢,他说你看看你的脚本就放在一个文件里,对于我们小白来说,这看起来很乱啊,能不能给我拆分, ...
- macaca 测试web(2)
还是以博客园登录为例, 可以查看上一篇上一篇 这次只测试登录,使用ddt的数据驱动,这里我博客也有记录 地址 其实我在uiautomator +python 实现安卓自动化 一文当中我已经使用过ddt ...
- lucene.net 3.0.3、结合盘古分词进行搜索的小例子(转)
lucene.net 3.0.3.结合盘古分词进行搜索的小例子(分页功能) 添加:2013-12-25 更新:2013-12-26 新增分页功能. 更新:2013-12-27 新增按分类查询功能, ...
- Spring.Net在ASP.NET Mvc里使用的一个小例子
就贴个小例子,就不注意格式了. 1.下载dll NuGet的下载地址:http://docs.nuget.org/docs/start-here/installing-nuget 在vs的NuGet里 ...
- springmvc入门的第一个小例子
今天我们探讨一下springmvc,由于是初学,所以简单的了解一下 springmvc的流程,后续会持续更新... 由一个小例子来简单的了解一下 springmvc springmvc是spring框 ...
- INI配置文件分析小例子
随手写个解析INI配置字符串的小例子 带测试 #include <iostream> #include <map> #include <string> #inclu ...
- JavaScript小例子:复选框全选
JavaScript小例子:复选框全选 这只是一个小例子,很简单,但是这个功能还是很常用的: 实现后效果如图: JavaScript代码: <script type="text/jav ...
- Robot Framework--13 RFS+AutoItLibrary测试web上传下载
转自:http://blog.csdn.net/tulituqi/article/details/21888059 Selenium2library在我们实际测试web页面的时候基本上已经够用了,不过 ...
- Robot Framework--12 RFS+AutoItLibrary测试web对话框
转自:http://blog.csdn.net/tulituqi/article/details/21871247 Selenium2library在我们实际测试web页面的时候基本上已经够用了,不过 ...
随机推荐
- 【nodejs】nodejs 的linux安装(转)
(一) 编译好的文件 简单说就是解压后,在bin文件夹中已经存在node以及npm,如果你进入到对应文件的中执行命令行一点问题都没有,不过不是全局的,所以将这个设置为全局就好了. ./node -v ...
- 初学Python(六)——输入输出
初学Python(六)——输入输出 初学Python,主要整理一些学习到的知识点,这次是输入输出. 输入: # -*- coding:utf-8 -*- ''''' python中的输出为print ...
- Java 编程 订单、支付、退款、发货、退货等编号主动生成类
订单.支付.退款.发货.退货等编号主动生成类 在商城网站中,订单编号的自动生成,ERP中各个单据的编号自动生成,都可以按照一下的方式来自动生成. 第一步:定义常量订单编号前缀.订单编号起始数.订单编号 ...
- Python网络数据采集2-wikipedia
Python网络数据采集2-wikipedia 随机链接跳转 获取维基百科的词条超链接,并随机跳转.可能侧边栏和低栏会有其他链接.这不是我们想要的,所以定位到正文.正文在id为bodyContent的 ...
- app请求服务器数据方法1-HttpUrlConnection
1. 实例化URL对象 首先第一步实例化一个URL对象,传入参数为请求的数据的网址. URL url = new URL("http://www.imooc.com/api/teacher? ...
- jquery左右轮播
<!--------html代码:-----------> <!DOCTYPE html><html><head><title>carous ...
- Tomcat结构、启动过程、关键组件简单分析
Tomcat 结构: Tomcat最顶层容器叫Server,代表整个服务器,Server中包含至少一个Service,用于具体提供服务,Serv ...
- 《撸轮子系列》之LoadPE
前言 我新书<Python爬虫开发与项目实战>出版了. 这本书包括基础篇,中级篇和深入篇三个部分,不仅适合零基础的朋友入门,也适合有一定基础的爬虫爱好者进阶,如果你不会分布式爬虫,不会千万 ...
- iOS 折线图实现
图表绘制的过程实际上是坐标位置的计算过程,至于画线只要有了position,通过CAShapeLayer+BezierPath很快就可以画出来,这里提供一个绘制折线的demo,贵在思路,有需要的可以参 ...
- angular select 遍历使用ng-option绑定的时候下面多出一个空白的option处理方法
只需要在select中加入一个 <option value="" selected hidden></option>