gauge框架简介

Gauge是一个轻量级的跨平台测试自动化工具。

gauge安装[Win10 64位下测试]

【百度网盘链接】https://pan.baidu.com/s/1bidE34gLLrSI8sQ9Lg9R7Q

【提取码】p0j9

1、下载

找到自己需要的版本,点击下载。

本文档使用版本(gauge-1.0.8-windows.x86_64.zip)

【下载地址】https://github.com/getgauge/gauge/releases

点击跳转git-hub链接地址

【注意】

1)darwin是MAC平台

2)需要安装node.js,且npm和node命令可用

2、安装

本文档使用的解压版本,解压即可

3、配置环境变量

将解压出来的gauge.exe所在文件夹配置到系统环境变量Path中

4、检测

查看安装是否成功

C:\Users\Administrator>npm -v
6.14.4 C:\Users\Administrator>node -v
v12.16.3 C:\Users\Administrator>gauge -v
Gauge version: 1.0.8
Commit Hash: 28617ea Plugins
-------
No plugins found
Plugins can be installed with `gauge install {plugin-name}`

5、安装插件

1)安装gague-js插件

[在线安装,十分缓慢,不推荐]

gauge install js

[本地安装,推荐]

gauge install js -f gauge-js-2.3.11.zip
C:\Gail\Dev\gauge>gauge install js -f gauge-js-2.3.11.zip
audited 308 packages in 6.696s
found 0 vulnerabilities Successfully installed plugin 'js' version 2.3.11

2)安装html-report插件,此插件用于生成测试报告;依然可以在线安装,这里直接演示本地安装

C:\Gail\Dev\gauge>gauge install html-report -f html-report-4.0.11-windows.x86_64.zip
Successfully installed plugin 'html-report' version 4.0.11

【备注】若遇到失败,关闭控制台,重新尝试

6、初始化js项目【注意】在空文件夹中进行

#创建文件夹
mkdir js-demo
cd js-demo
#简单创建
gauge init js

创建过程中。。。

C:\Gail\Dev\gauge\js-demo>gauge init js
Downloading js.zip
Copying Gauge template js to current directory ...
[ .................] - fetchMetadata: sill pacote range manifest for @types/yauzl@^2.9.1 fetched in 1182ms

正在下载Chromium。。。到这一步建议两次Ctrl+C取消下载

C:\Gail\Dev\gauge\js-demo>gauge init js
Downloading js.zip
Copying Gauge template js to current directory ... > taiko@1.0.11 install C:\Gail\Dev\gauge\js-demo\node_modules\taiko
> node lib/install.js Downloading Chromium r767160 - 145.9 Mb [ ] 1% 5662.0s

完整的操作代码

C:\Gail\Dev\gauge>mkdir js-demo

C:\Gail\Dev\gauge>cd js-demo

C:\Gail\Dev\gauge\js-demo>gauge init js
Downloading js.zip
Copying Gauge template js to current directory ... > taiko@1.0.11 install C:\Gail\Dev\gauge\js-demo\node_modules\taiko
> node lib/install.js Downloading Chromium r767160 - 145.9 Mb [ ] 1% 12634.4s
C:\Gail\Dev\gauge\js-demo>终止批处理操作吗(Y/N)? ^CC:\Gail\Dev\gauge\js-demo>

【注意】在创建过程中,会下载很多东西,也不知道都下载的什么玩意;在本人的深入研究下,它默认会依赖一个叫做[taiko]的模块,这个是自动化模拟浏览器操作的框架,详情请自行百度;要下载Chromium,速度及其缓慢不说,还容易卡死。

由于本教程不使用taiko模块,此处不再下载。若需要完整的init示例,本人推荐使用网盘下载[demo-taiko-chrome.rar],或者留言邮箱gail_hu@126.com

7、目录及文件介绍

目录:

js-demo
|-env # 配置文件
|-node_modules # 依赖的模块
|-logs # 日志文件
|-specs # gague 测试文档目录,主要目录
|-|-example.spec # 测试文档,主要文件
|-tests # 具体的逻辑代码所在目录,主要目录
|-|-step_implementation.js # 具体的逻辑代码,基于node.js语法,主要文件
|-manifest.json # 项目属性文件,不建议修改
|-metadata.json # 项目基本信息,可以修改描述等信息
|-package.json # node.js 项目包结构文件,次要文件;下面的【重点提示】里面会提到这个

文件:

[example.spec]

默认基于markdown语法,也可以用别的写法,详情请自行百度gauge语法;

没有任何特殊字符开头的是注释,"This is an executable..."是注释说明;

一级标题只能有一个,为测试入口;

二级标题可以有多个,为测试阶段;

以[* ]开头的是具体的测试步骤;后面跟的是要传入测试代码名称;测试代码中以此名称来查找具体的测试方法;

双引号在这里指的是要传入测试代码的变量

# Getting Started with Gauge

This is an executable specification file. This file follows markdown syntax. Every heading in this file denotes a scenario. Every bulleted point denotes a step.
To execute this specification, use
npm test ## Search Taiko Repository * Goto getgauge github page
* Search for "Taiko"
* Page contains "getgauge/taiko"

[step_implementation.js]默认基于node.js语法,不懂请自行学习node.js语法

/* globals gauge*/
"use strict";
const { openBrowser,write, closeBrowser, goto, press, screenshot, text, focus, textBox, toRightOf } = require('taiko');
const assert = require("assert");
const headless = process.env.headless_chrome.toLowerCase() === 'true'; beforeSuite(async () => {
await openBrowser({ headless: headless })
}); afterSuite(async () => {
await closeBrowser();
}); gauge.screenshotFn = async function() {
return await screenshot({ encoding: 'base64' });
}; step("Goto getgauge github page", async () => {
await goto('https://github.com/getgauge');
}); step("Search for <query>", async (query) => {
await focus(textBox(toRightOf('Pricing')))
await write(query);
await press('Enter');
}); step("Page contains <content>", async (content) => {
assert.ok(await text(content).exists());
});

8、项目改造测试

【代码改造】

[example.spec]

# Getting Started with Gauge

	npm test

## Start Test
* Open Baidu "https://www.baidu.com"

[step_implementation.js]

/* globals gauge*/
"use strict";
const request = require("request"); step("Open Baidu <url>", async (url) => {
var options = {method:'get',encoding:'utf-8',url:url};
request(options,(err,res,body)=>{
console.log(body.toString());
});
});

【代码说明】

发起一个打开百度,获取页面内容的测试。

【测试结果】

D:\Develop\gauge\js-demo>npm test

> gauge-taiko-template@0.0.1 test D:\Develop\gauge\js-demo
> gauge run specs/ # Getting Started with Gauge
## Start Test P <!DOCTYPE html><!--STATUS OK-->
<hrml>...中间省略...</html>
Successfully generated html-report to => D:\Develop\gauge\js-demo\reports\html-report\index.html Specifications: 1 executed 1 passed 0 failed 0 skipped
Scenarios: 1 executed 1 passed 0 failed 0 skipped Total time taken: 401ms

【测试说明】

如果出现问题,请参考下面【重点提示】。

重点提示-初始化项目

1、初始化项目,需要安装对应语言的插件

2、初始化项目,一般在空文件夹下进行[以下代码在Windows控制台中进行]

gauge install (语言)
gauge init (语言)

例如初始化Java

gauge install java
mkdir java-demo
cd java-demo
gauge init java

初始化python

gauge install python
mkdir python-demo
cd python-demo
gauge init python

3、每次初始化项目都会重新下载那些包,建议使用node.js直接初始化node项目,自己进行补充;或者直接手动创建。

重点提示-项目精简

[package.json]源文件

{
"name": "gauge-taiko-template",
"version": "0.0.1",
"description": "Starter template for writing JavaScript tests for Gauge",
"scripts": {
"test": "gauge run specs/"
},
"dependencies": {
"request": "^2.88.2",
"taiko": "latest"
}
}

[package.json]文件说明

"name"  项目名,可修改
"version" 版本号,可修改
"description" 项目描述,可修改
"scripts" 执行脚本,不建议修改
"dependencies" 项目依赖,这里要删除[taiko],不然每次初始化都会下载Chromium。如果项目用到这个插件,建议手动复制模块进去。

文件修改后

{
"name": "gauge-template",
"version": "0.0.1",
"description": "JavaScript tests for Gauge",
"scripts": {
"test": "gauge run specs/"
},
"dependencies": {
"request": "^2.88.2",
}
}

执行测试之前,删除无关文件,删除后目录如下

|-env
|-|-default
|-|--default.properties
|-|--headless.properties
|-|--js.properties
|-specs
|-|-example.spec
|-tests
|-|-step_implementation.js
|-manifest.json
|-metadata.json
|-package.json

这里执行测试仍旧仅测试打开百度,获取响应。

#在项目根目录打开控制台,安装项目
npm install
#测试项目
npm test
#测试结果和之前一致

测试中遇到的问题

1、提示安装XXX插件或模块

【解决办法】

1)耐心等待;

2)拷贝相应的模块到node_modules

3)npm install 安装相应的模块,但是node.js模块要配置到环境变量,从而达到在系统中的任何地方都能优先使用node.js的模块。

2、关于nodeJs插件的引用错误问题,主要是install安装的路径,比较复杂,建议参考这个链接

最新文章

  1. 伪元素::after和::before
  2. MS SQL错误:SQL Server failed with error code 0xc0000000 to spawn a thread to process a new login or connection. Check the SQL Server error log and the Windows event logs for information about possible related problems
  3. linux下解压大于4G文件提示error: Zip file too big错误的解决办法
  4. [转]PHP编码规范
  5. web form 控件
  6. JS-定时器管理实例
  7. UIPickView 和 UIDatePicker
  8. Asp.net MVC Bundle 的使用与扩展
  9. 数据持久层(三)ODB介绍
  10. iOS程序员的React Native开发工具集
  11. OpenStack和Hadoop的区别
  12. 高级软件工程2017第7次作业--C++团队项目:Beta阶段综合报告
  13. Python开发【第四篇】函数
  14. Maven安装及配置
  15. adb 查看包名或其他
  16. style.width与offsetWidth的区别
  17. dubbo ActivateExtension
  18. 廖雪峰Java1-3流程控制-1输入输出
  19. Linux 搜索日志信息
  20. vs2017 Remote Debugger远程调试目录

热门文章

  1. DNS 处理模块 dnspython
  2. kafka可插拔增强如何实现?
  3. Hadoop-wordCount实例代码编写(Hadoop学习第四天)
  4. Oracle条件判断
  5. 【不断更新】mysql经典50道题自我练习
  6. ereg正则%00截断
  7. pod install update没有反应
  8. MySQL++:liunx 安装 MySQL
  9. kafka消费者重试逻辑的实现
  10. Docker 部署Spring Boot 项目并连接mysql、redis容器(记录过程)