npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

testcafe-global-network-request-logger

v2.0.0

Published

Global hook for testcafe that will intercept, record and save network request/response communication to a JSON file

Downloads

3

Readme

Global Network Request Logger for Testcafe

Global Hook for testcafe that will record and save network communication (request/response) with external services to JSON file

Build Status

Uses TestCafe global hooks to record network calls executed in browser and saves them into file using same format as screenshots/videos. It is meant to be used in CI, together with screenshot & video recording for better troubleshooting capability of failed tests

Features

  • zero dependencies
  • supports gzipped or JSON responses
  • once attached will execute for all tests
  • uses similar config as testcafe screenshot and video for path and recording customization
  • adds additional param that can be used to limit number of logged requests (usually only last few requests matter)
  • supports quarantine mode and parallel test execution

Note

Only intercepts cross domain requests to avoid recording locally requested resources like HTML, CSS or JS.

Prerequisite

In order to use global hooks, TestCafe Javascript configuration file must be used.

Install

npm install testcafe-global-network-request-logger

Configuration

Once installed add network configuration in .testcaferc.js file

module.exports = {
  // some other config
  network: {
    path: 'tmp',
    takeOnFails: true,
    pathPattern: '${DATE}/${FIXTURE}/network/${TEST}_${TIME}_${QUARANTINE_ATTEMPT}.json',
    requestLimit: 0,
  },
};

| Required | Argument | Description | Example | | -------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | | Yes | network.path | The base directory where screenshots are saved | tmp | | Yes | network.takeOnFails | true to take a screenshot whenever a test fails. | true | | Yes | network.pathPattern | A pattern that defines how TestCafe composes the relative path to a screenshot file. See Screenshot and Video Directories. | ${DATE}/${TEST}.json | | Yes | network.requestLimit | defines number of requests that should be logged, 0 means all | 3 |

Enable request logging

Once configured last step is to attach hook in .testcaferc.js file

const networkRequestLogger = require('testcafe-global-network-request-logger')(/* FILTER */);

module.exports = {
  // some other config
  network: {
    // network config
  },
  hooks: {
    test: {
      before: async t => {
        await networkRequestLogger.onBeforeHook(t);
      },
      after: async t => {
        await networkRequestLogger.onAfterHook(t);
      },
    },
  },
};

FILTER

Leave undefined for default (records all HTTP non OPTION, JSON requests) or define custom filter as described in testcafe docs

Examples

See working examples in examples folder

Author

Rafal Szczepankiewicz