@arextest/arex-node-agent v1.2.3-beta.69
背景
arex nodejs-agent 实现
环境
- js
- monkey patch
- rollup 打包
- ctrip npm 部署
- npm
- node v18
- semver
v1 内容
- 支持入口为express的api
- 支持http wrap
- 支持knex db wrap
- 支持上下文录制回放交互
- 预留arex api mock
项目结构
- 模块agent: nodeagent实现逻辑
- 模块app: 目标应用
- 模块app/instrumentation.js: 启动中间件
启动node-agent
- 自定义中间件启动器,按需配置中间件
参考 app/instrumentation
node --require ./instrumentation.js index.js
- 通过arex-runner启动agent
- 环境变量指定appid,host
- 平台配置更多中间件
- app/Dockerfile
CMD ["node", "--require", "--require @arextest/arex-node-agent/dist/runner.js", "index.js"]
- 调试本地agent
debug:
DEBUG=@arextest:* node --require ./instrumentation_local.js index.js
实现
- 代理流程
- 初始化配置
- 代理一个入口函数 生成上下文context,store
- 装载入口函数
- 装载函数调用的io,自定义装载等
- 加载context
- 录制/回放
- 存储/加载
- 结束
- 线程结束
- 卸载patch
案例 - express 请求一个 updateUser 接口
录制操作
- Express 中间件
- 创建
recordId
- 调用
client.saveRecord
- 保存
updateUser
请求的request, response信息
- 创建
- service 被测代码逻辑
- 调用
client.saveRecord
- 保存
service.updateUserName
的request, response信息
- 调用
回放操作
- Express 中间件
- 适配回放标识
arex-record-id
- 创建
replayId
- 调用
client.queryRecord
- 查询并提交
updateUser
请求的request,response信息
- 适配回放标识
- service 被测代码逻辑
- 调用
client.queryRecord
- 查询
service.updateUserName
的request, response信息 - 替换方法的返回结果
- 调用
发布
v1.0.6 1. 提取静态字段 2. 修复option读取失败 v1.0.10 1. 支持mysql2
参考
- 演练场
/jagong/node-agent-payload/-/tree/main/node_arex_agent
- npm 发布流程
- 申请权限
npm login --registry https://registry.npmjs.org
npm publish --registry https://registry.npmjs.org --access=public
- mock http :Nock 或 Sinon 等库来进行请求拦截和模拟响应
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
10 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
12 months ago
11 months ago
12 months ago
10 months ago
12 months ago
10 months ago
12 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
12 months ago
1 year ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
1 year ago
12 months ago
12 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
11 months ago
11 months ago
12 months ago
12 months ago
11 months ago
12 months ago
11 months ago
12 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago