自动化测试还可以用来干啥

自动化测试就是把一些重复的测试工作利用相关工具自动化,减少重复的劳动。我们不仅可以利用自动化测试工具做测试,还可以利用这些工作做一些其他事情,比如爬数据,曾经抓取过学校的整个学期的课表,空闲教室,帮老爸抓取他的客户联系信息到 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
2
3
4
5
6
7
8
9
10
11
12
13
var webdriver = require('selenium-webdriver'), // 引用模块
By = webdriver.By,
until = webdriver.until;

var driver = new webdriver.Builder()
.forBrowser('firefox') // 打开 firfox
.build();

driver.get('https://www.google.com/ncr'); // 打开网页
driver.findElement(By.name('q')).sendKeys('webdriver'); // 获取输入框,并输入元素
driver.findElement(By.name('btnG')).click(); // 获取搜索按钮,并点击
driver.wait(until.titleIs('webdriver - Google Search'), 1000); // 等待网络响应直到网页标题变为webdriver - Google Search
driver.quit();

api 都简单易懂,很快就能入手使用。使用中遇到问题是 driver.findElement 有时会出现异常,原因是有的网页是后端动态渲染的,无法一下子获取到对应的元素,需要使用

1
var button = driver.wait(until.elementLocated(By.name('login')), 5 * 1000)

计划用自动测试来自动运营微信公众号。大概流程如下(基本就是模拟用户行为):

现在需要扫描二维码,那么就将二维码发送到手机然后微信识别登录。

  1. 登录
  2. 获取二维码
  3. 点击群发消息
  4. 点击消息
  5. 编辑文章
  6. 发送
  7. 获取二维码
  8. 文章发布成功

可以利用 slack 或者 telegram 机器人的 api 来通知自己(比如将验证码图片发送到手机)。

文章来自: https://hanks.pub