web前端自动化测试基础

一、为什么要进行自动化测试?

1.功能越多越复杂,出现bug的风险越高;

2.bug发现的越晚,修复bug的成本越高;

3.手动测试繁琐,容易出错。

二、两种基本的自动化测试
1.单元测试:直接测试代码的逻辑,一个函数或一个模块都可以是一个单元。

单元测试分两种形态:

a. TDD(Test-Driven Development 测试驱动开发):在开发功能代码之前,先编写测试代码。可以帮助客户和程序员明确需求,

b. BDD(Behavior Driven Development 行为驱动开发):通过自然语言书写不是程序员也可以看懂的测试语言。能让开发者集中精力在开发项目上,而不是写测试代码,也能减少沟通客户、产品、开发之间的沟通成本。

2.验收测试:用脚本控制浏览器来触发web程序的功能,测试程序界面和功能。
三、单元测试常用的工具 mocha、Node assert、should.js
1.用mocha 和 Node 的 assert 模块测试

mocha:是一个在Node.js和浏览器上运行的功能丰富的JavaScript测试框架。

mocha.png

assert:断言,可以测试一个条件,如果条件不满足,就出现错误提示。

全局安装mocha

$ npm install mocha -g

mocha基本语法:

describe、it都是代码块;

describe :测试套件,测试套件里面可以嵌套测试套件,一个测试套件又由若干个测试用例组成;

it:测试用例。

examples:

var assert = require('assert')

  describe('Array', function() {
      describe('#indexOf()', function() {
        it('should return -1 when the value is not present', function() {
          assert.equal(-1, [1, 2, 3]/* 填空题 */)
        })
      })
  })
    
    describe('assert', function () {
      it('a和b应当深度相等', function () {
        var a = {
          c: {
            e: 1
          }
        }
        var b = {
          c: {
            e: 1
          }
        }
        // 修改下面代码使得满足测试描述
        assert.equal(a, b)
      })
    
      it('可以捕获并验证函数fn的错误', function () {
        function fn() {
          xxx;
        }
        // 修改下面代码使得满足测试描述
        fn()
      })
    })

启动测试:

mocha

测试结果如图:


测试结果1.jpg

修改代码后重新启动测试,成功提示如下图:


测试结果2.jpg
2.用mocha 和 should.js 测试

should.js:构建在 Node assert 模块之上的模块,BDD 风格的断言。

安装should :

$ npm install should --save-dev

examples:

   var should = require('should');
   var return42 = require('../my_code');
    
   it('should work with build script', function() {
       return42.should.be.a.Function;
   });
注意:之前运行的时候报Cannot find module 'should' 错误,尝试过下载和页面引用都没有用,最后知道了是因为mocha的版本问题,现在用的是最新的6,把mocha降级到5的最高级就可以用了。
3.Karma

Karma : 不是测试框架,也不是断言库。Karma只是启动一个HTTP服务器,可以在多个浏览器中执行JavaScript代码。

安装install:

$ npm install karma --save-dev

初始化

$karma init

1. Which testing framework do you want to use ? (mocha)  选择测试框架
2. Do you want to use Require.js ? (no)是否用Require
3. Do you want to capture any browsers automatically ? (Chrome) 选择浏览器
4. What is the location of your source and test files ? 设置测试文件和依赖文件(https://cdn.bootcss.com/jquery/2.2.4/jquery.js, node_modules/should/should.js, test/**.js)
5. Should any of the files included by the previous patterns be excluded ? 是否应该排除前一种模式所包含的任何文件 不太懂直接忽略吧
6. Do you want Karma to watch all the files and run the tests on change ? (yes) 是否监听文件是否变化,试试刷新

karma.conf.js配置文件 singleRun设置


image.png

记得安装karma-chrome-launcher


image.png

运行

$karma start

image.png
4.Travis CI 持续集成

Travis CI 是目前比较流行的持续集成工具之一,用来构建及测试在 Github 托管的代码,使用它可以极大的简化工作流程。
持续集成:持续集成指的是,频繁地(一天多次)将代码集成到主干。

使用方法,首先进入Travis CI,点击使用github账号登录,

image.png

点击添加要测试的项目,打开开关。


image.png

在项目的根目录,需要建一个.travis.yml文件,这是配置文件,采用 YAML 格式。
language字段指定了默认运行环境;
script字段指定要运行的脚本,script: true表示不执行任何脚本,状态直接设为成功。

简单的设置如下:


image.png

git提交代码后,启动测试,
信息会更新显示在travis面板里,


image.png

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容