0.0.4 • Published 7 years ago

redux-action-replay v0.0.4

Weekly downloads
1
License
MIT
Repository
-
Last release
7 years ago

Redux Action Replay

Replay your redux actions in your application by puppeteer.

Get renderer metrics and take screenshots.

Install

npm install redux-action-replay

CLI

$ npm install redux-action-replay -g
$ par myscenario.json

Concepts

  • Redux actions is good clue to replay application state.
  • Headless Chrome is best way to integrate test.
  • This is a weak e2e.
    • Your application is controlled by redux action and puppeteer.
    • It's helpful for renderer metrics and take screenshots.

How to use

Add this code to record your actions.

/* @flow */
// src/store/create.js
import { createStore, applyMiddleware } from 'redux'
import reduxPromise from 'redux-promise'
import reducer from '../reducers'
import { isPuppeteerEnv, createAutomateStore, recorder } from 'redux-action-replay'

export default () => {
  if (isPuppeteerEnv()) {
    return createAutomateStore(reducer)
  }

  return createStore(
    reducer,
    undefined,
    applyMiddleware(reduxPromise, recorder({ ui: true }))
  )
}

Record your actions in your app.

npm.io

Save json.

Run with cli.

# npm install redux-action-replay -g
# or use via ./node_modules/.bin/par
$ par myscenario.json

Run with node

/* @flow */
import run from 'redux-action-replay/runner'

const scenario = require('./scenarios/test-actions.json')
run(scenario, {
  screenshot: true
})

Results.

delta > counter/add { Timestamp: 0.5370970000003581,
  JSEventListenerCount: 6,
  LayoutCount: 1,
  LayoutDuration: 0.00020599999879777903,
  ScriptDuration: 0.0007769999992887997,
  TaskDuration: 0.003832000002148502,
  JSHeapUsedSize: 31344 }
delta > counter/add { Timestamp: 0.537903999998889,
  JSEventListenerCount: 6,
  LayoutCount: 1,
  LayoutDuration: 0.000404000000344241,
  ScriptDuration: 0.0005920000003242984,
  TaskDuration: 0.003926999996110701,
  JSHeapUsedSize: 31088 }
delta > counter/add { Timestamp: 0.5443740000009711,
  JSEventListenerCount: 6,
  LayoutCount: 1,
  LayoutDuration: 0.00027700000100594,
  ScriptDuration: 0.0012000000006083013,
  TaskDuration: 0.004784000006111497,
  JSHeapUsedSize: 31088 }
delta > counter/add { Timestamp: 0.541692000000694,
  JSEventListenerCount: 6,
  LayoutCount: 1,
  LayoutDuration: 0.00021600000036414995,
  ScriptDuration: 0.0006799999991927014,
  TaskDuration: 0.0036060000002180043,
  JSHeapUsedSize: 31088 }
delta > counter/add { Timestamp: 0.5375689999982569,
  JSEventListenerCount: 6,
  LayoutCount: 1,
  LayoutDuration: 0.0005600000004051301,
  ScriptDuration: 0.0007479999985661977,
  TaskDuration: 0.004369999996924896,
  JSHeapUsedSize: 31088 }
delta > automator/recording-end { Timestamp: 0.5751890000010462,
  TaskDuration: 0.0034789999972417995,
  JSHeapUsedSize: 8928 }

TODO

  • Meaningful renderer analyze
  • image diff utilities

License

MIT