自动化测试就是把一些重复的测试工作利用相关工具自动化,减少重复的劳动。我们不仅可以利用自动化测试工具做测试,还可以利用这些工作做一些其他事情,比如爬数据,曾经抓取过学校的整个学期的课表,空闲教室,帮老爸抓取他的客户联系信息到 excel 表。这种工具不同于一般的脚本爬虫,这相当于正常的用户行为,比如点击输入框,输入文本,点击按钮,而且不用担心动态 js 等问题。
大概搜索了几个自动化测试的工具:
selenium
capserjs
phantomjs
Sikuli
Zombie
WebSpec
以前使用的 WebSpec
,支持多种浏览器内核,可开关 GUI。
下面了解了一下 selenium-webdrive,支持语言有 java
c#
python
ruby
php
perl
javascript
。
javascript 版安装很简单
1 | npm install selenium-webdriver |
这是自带的 firefox 版本的,其他浏览器的可以另行下载。
看官网的一个例子
1 | var webdriver = require('selenium-webdriver'), // 引用模块 |
api 都简单易懂,很快就能入手使用。使用中遇到问题是 driver.findElement
有时会出现异常,原因是有的网页是后端动态渲染的,无法一下子获取到对应的元素,需要使用
1 | var button = driver.wait(until.elementLocated(By.name('login')), 5 * 1000) |
计划用自动测试来自动运营微信公众号。大概流程如下(基本就是模拟用户行为):
现在需要扫描二维码,那么就将二维码发送到手机然后微信识别登录。
- 登录
- 获取二维码
- 点击群发消息
- 点击消息
- 编辑文章
- 发送
- 获取二维码
- 文章发布成功
可以利用 slack 或者 telegram 机器人的 api 来通知自己(比如将验证码图片发送到手机)。
文章来自: https://hanks.pub