基于页面js的自制简易测试工具

时间:2022-11-24 11:37:22

js_test_framework

该工具主要用于web前端单元测试,通过直接在浏览器中调用js方法,实现界面上的现场测试

git地址:

https://coding.net/u/mich/p/js_test_framework/git

流程

  1. 通过testLive在现场录制所需要的请求,testLive会记录期间所有的请求,同时可以重新运行
  2. 将testLive录制后的请求,通过output方法输出至控制台,将输出的data写入自定义模块的RequestData中,同时在定义data后注册进requestFactory
  3. 编写自定义模块的Test.js,通过调用requestFactory中的网络请求,同时编写需要判断的断言,将各个模块的单元测试和流程测试,注册至testManager中
  4. 运行testManager中的测试用例,查看测试执行中的结果,同时分析结果

文件目录结构样例

basic:核心模块

testLive
requestFactory
testManager

module:外部模块,仅为样例

user

userRequestData
userTest

product

productRequestData
productTest
...

三大模块

模块间都各自独立,可自定义单独替换


testLive

    前端录制现场,通过调用回调接口,记录下用户在前端界面的所有操作记录

对外接口

  • startRecord 开始录像,name为录像的名称
  • stopRecord 结束录像
  • output 输出所有录像的结果集
  • runRecord 运行录像
  • shouRequest 查看所有录像的目录结构和详情
  • callback 对外回调函数,外部函数可在方法调用出,调用此回调

拓展方法

  • ajaxOverride 重写ajax请求,将所有jquery的ajax加入回调

requestFactory

    请求工厂,主要用于收集用户的所有请求记录

对外接口

  • registerMethod 注册方法,通过此方法外部调用可在requestFactory中注册方法
  • registerData 注册数据,此方法与registerMethod类似,只是参数结构不同
  • getMethod 通过方法名获得方法 {name:自定义方法名,url:网络请求地址,methodType:请求方式,run:执行方法}
  • getMethod.run 在通过getMethod后可直接调用run函数,进行方法执行,返回结果{costTime:开销时间,requestData:请求参数,type:请求方式,url:网络请求地 址,responseData:服务器返回结果,success:此次请求是否成功}
  • showMethods 显示requestFactory中所有的请求

testManager

    测试集成,用于管理测试,将测试模块化,以及结果的展示

对外接口

  • registerMethod 注册方法,通过此方法外部调用可在testManager中注册方法
  • registerData 注册数据,此方法与registerMethod类似,只是参数结构不同
  • run 运行方法,返回值为本次运行的结果详情
    目录结构为{assertQueue:所有断言结果集合,responseQueue:所有请求结果集合,errAssertQueue:所有断言失败集合,errorResponseQueue:所有网络请求失败集合,spendTime:请求时间开销,success:是否成功}
  • showAll 展示测试所有模块的目录结构
  • showMethods 通过模块名,展示该模块下所有测试方法

内部工具类

assertQueue 断言队列 该类用于记录与判断用户的目标结果与实际结果是否一致,同时输出结果集

  • result 相关数据
  • recordResponse 用于记录网络请求的结果
  • assert 用户设置的断言