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

browz

v1.0.1

Published

Browz is a tool to perform automatic cross-browser tests of web apps

Downloads

135

Readme

Browz

Browz is a thesis project for Systems Engineering major at Universidad de Los Andes, aiming to provide a tool for web developers to test their web application in different browsers and see the differences that arise between them. By using our own docker image hosted on Docker Hub we offer a controlled environment for executing headless browsers that will test your web app and give you results.

Getting Started

Currently our project runs locally, therefore you will need to execute everything on your computer.

Prerequisites

  • Node JS and NPM: Installation instructions can be found here. Once installed check your version by running:
npm --version
node --version

If you wanna run the execution code of the container locally we recommend having a Node JS Version >= 10

  • Docker: Installation instructions can be found here. Again, once installed check your version by running:
docker --version

If you have any trouble installing docker you can always turn to virtualization alternatives, like Docker Machine, Vagrant or even cloud providers including Amazon

Installing and running from source

First, clone the project's repo and install the dependencies using npm

git clone https://github.com/sguzmanm/browz.git
cd browz
npm install

After that, just run

npm run browz -- <path-to-web-app> <screenshots-destination>
  • path-to-web-app is the path where the built files of the web app to test are. Built files must be HTML, JS and CSS files, however, they may also include other assets (videos, images, etc). Currently we do not support applications that are server side rendered.
  • screenshots-destination is the path where the screenshots taken of the tests will be stored. We explore the web application and take screenshots at every action done to later compare the images against the execution of the other browsers.

Env vars

Most of the project is configured by using env variables. Here is a brief example of each one we used:

LINUX_CONTAINER=sguzmanm/linux_cypress_tests:latest
HTTP_PORT=8080
HTTP_APP_DIR=/app
IMAGE_PORT=8081
SNAPSHOT_DESTINATION_DIR=/screenshots
BROWSER_RESPONSE_WAITING_TIME=30000
BASE_BROWSER=electron

Built With

This project has two execution 'runtimes':

  • The host machine, which triggers the testing container and hosts the UI files locally to visualize the test results.
  • The docker container, which does all the heavy lifting to do the cross-browser tests.

Host

  • Vue.js: Awesome javascript framework to build user interfaces.

Docker Container

  • Cypress: Testing software that we use to do automated headless browser execution
  • Express: Fast web framework to create REST APIs. Internally we set up a REST API to communicate the browser instances results.
  • Resemble.js: Image analysis and comparison between screenshots.
  • Node Static: JS Server for static files, used for hosting the built files of the tested web app.
  • Faker: Generate random data for filling information inside tests.

Contributing

We don't have any guidelines to submit a pull request. Feel free to create an issue or a pull request.

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments