You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
串行"test": "npm run unit && npm run e2e && npm run ui && npm run service",
"unit": "karma start",
"e2e":"node ./e2e/*.spec.js",
"ui":"backstop test",
"service":"node ./mochaRunner.js",
并行"test": "npm run unit & npm run e2e & npm run ui & npm run service",
"unit": "karma start",
"e2e":"node ./e2e/*.spec.js",
"ui":"backstop test",
"service":"node ./mochaRunner.js",
由此可见 上述test方式太过繁琐,我们通过一个工具简化一下,这个工具就是 npm-run-all
安装npm-run-all
npm install npm-run-all --save-dev
使用
"test": "npm-run-all unit e2e ui service",
上面这种方式不是并发执行 如果有,某一步出错,就会终止。可以加一个参数让它变成并发执行
"test": "npm-run-all --parallel unit e2e ui service",
完事!!!
The text was updated successfully, but these errors were encountered:
来一打JavaScript集成化测试(实战篇)
JavaScript与QA工程师(理论篇)
开搞
单元测试
单元测试的测试框架有很多中,今天用的是karma,还有一个是React推出的jest
初始化npm
下载karma包
安装karma-jasmine和jasmine-core断言库
安装PhantomJS 和 karma无头浏览器启动项
初始化karma包
执行上面这个命令会有几个选项让选择
我们选jasmine。
按需求来选,如果用的话选yes,不用的话选no
找浏览器执行,这里是用的是phantomJS,这是一个无头浏览器,也就是无界面浏览器,可以在终端执行操作DOM元素。
可选可不选,可以自己配置。
可选可不选,这里不选
可选可不选,这里不选
安装完成之后,会生成karma.vonf.js文件,这个就是karma的配置文件。
karma配置文件
我们来看一下配置文件,去掉注释就剩这么多,解释一下中要的几个。
开始需要添加的配置--指定测试文件的路径
files: [
"./unit/ ** / * .js",
"./unit/ ** / * .spec.js"
],
编写测试用例
假设我们测试一下代码
测试用例这样写
启动测试
测试成功的话是绿色的显示SUCCESS
测试失败的话会报错。
代码的覆盖率检查
当测试代码用有ifelse的时候,测试用例中只写一个测试是达不到完成测试的,就上面测试代码而言。我们用代码的覆盖率检查来检测一下。
覆盖率检查通过karma-coverage来完成
在karma.conf.js中修改
设置以coverage的方式生成报表
设置处理的文件
文档生成的位置
在目录下设置docs文件夹存放报表文件
生成的报表文件
此时生成的报表文件
可以看到Branches是50%,说明只能测试到了50%的代码
我们修改测试代码
此时的测试用例
功能测试
e2e测试
e2e主要测浏览器的功能测试
e2e主要使用的是selenium-webdriver,这里是它其他的一些方法API
安装selenium-webdriver
selenium-webdriver通过自动启动浏览器进行e2e测试,因此必须要安装浏览器驱动程序。
在这里下载各大浏览器的驱动程序,把下载好的驱动程序解压下来放在项目根路径下就可以了。
测试流程
比如说我们要测试百度的input框输入内容之后跳转的相应的界面中的title值。
在项目根目录中创建e2e文件夹,创建baidu.spec.js文件,这个baidu.spec.js文件就是测试文件。测试文件中代码如下。
特别注意的是最后driver.quit(),系统一定要退出,如果不退出的话,就会堵塞后面的加载。
启动测试
selenium-webdriver是基于node的语法,因此执行
就可以启动测试
测试结果
测试正确不会出现任何状态,
测试不正确会报错
nightwatch也是做e2e测试的一个框架,这里先不说,以后用这个做e2e。
用rize来做e2e测试
rize.js是一个新出的测试框架,在这里检测一下e2e测试。
与rize.js配合的是一个新出的无头浏览器puppeteer,它和selenium-webdriver不同的是它不需要打开浏览器去测试。
rize.js实际上是对puppeteer的一个高度封装
安装rize和puppeteer
测试用例
和selenium-webdriver一样,我们假设测试giuhub网站,输入node 会不会出现Node.js这几个字。(注意的是rize搜索是全页面的搜索,因此会慢些)。
在e2e文件夹下创建github.spec.js
可见上述用例在语法上就比较简洁,容易看懂。
启动测试
rize是基于node的语法,因此执行
就可以启动测试
测试结果
成功的测试不会有任何反应。
错误的测试会报错
UI测试
什么是UI走查
把对应生成的页面看,看过之后比对是否还原UI图正确,还原对了就让上线,没有还原对就不让上线。
最早的UI走查就是Phantom的妹妹 phantom-css
UI测试框架backstopJS
初始化backstopJS项目
初始化之后,出现了几个配置文件
backstop.json配置文件
设置页面分辨率,可同时设置好几个。
配置每一个测试用例
参考文件路径
由于backstopJS测试是进行的UI走查的环节,必须指定设计图,把参考文件放在"backstop_data/bitmaps_reference"文件夹下,可在backstop.json中paths下面的bitmaps_reference设置。
注意:backstop.json中viewports中写了几个视图就要匹配几种参考图片
启动测试
测试结果
会生成一个报表,自动打开网页,网页里会形成测试网页与设计图的匹配。查看测试结果。
接口测试
前端接口测试一般用测自己,测自己的node接口。
在项目根目录下创建service文件夹和mochaRunner.js文件。
测试框架
使用mocha进行接口测试
安装mocha
测试流程
我们自己写一段express代码,自测一下。
在service文件夹下,创建router.spec.js用于测试上述接口。
注意的是router.spec.js中的测试代码和karma单元测试中的测试代码风格相同。唯一不同的是,接口测试是跑在node服务上的必须把进程done掉,不然会阻塞执行。
下面是测试代码
在mochaRunner.js中编写异步测试
生成测试报表
使用mochawesome生成测试报表
安装mochawesome
在mochaRunner.js中配置
这样就可以生成测试报表。
启动测试
mocha是基于node的语法,因此执行
测试结果
代码中会返回一个出错长度,如果出错长度为0的话就不是出错,如果出错长度不为0就是出错了。
正确的测试结果
错误的测试结果
最后的希望-集成化测试
利用pachage.json串行和并行执行命令的方式集成化测试
由此可见 上述test方式太过繁琐,我们通过一个工具简化一下,这个工具就是 npm-run-all
安装npm-run-all
使用
上面这种方式不是并发执行 如果有,某一步出错,就会终止。可以加一个参数让它变成并发执行
完事!!!
The text was updated successfully, but these errors were encountered: