Testing Streamlit Apps Using SeleniumBase

all checks have passed

When I’ve worked at Streamlit, I’ve seen hundreds of impressive data apps ranging from computer vision applications to public health tracking of COVID-19 and even simple children’s games. I believe the growing popularity of Streamlit comes from the fast, iterative workflows through the Streamlit “magic” functionality and auto-reloading the front-end upon saving your Python script. Write some code, hit ‘Save’ in your editor, and then visually inspect each code change's correctness. And with the unveiling of Streamlit sharing for easy deployment of Streamlit apps, you can go from idea to coding to deploying your app in just minutes!

Once you've created a Streamlit app, you can use automated testing to future-proof it against regressions. This post will show how to programmatically validate that a Streamlit app is unchanged visually using the Python package SeleniumBase.

Every Branch Gets a Stack: A How-To Guide

Turbocharge your team’s development workflow with this strategy that provides quick feedback in a collaborative, no-risk environment.

Last year SingleStone set out to build its first SaaS solution. We decided to do things differently and lean into a branching strategy. We’ve built plenty of custom software in our 23-year history, but always for clients. In those projects, there are always pre-existing factors that guide design decisions: specific languages, tooling, and processes. Sometimes, there are existing CI workflows in place that dictate how our contributions are incorporated.

The Four Pillars of Mobile DevOps Strategy

Originally published April 16, 2020

Recently, mobile DevOps has been a topic that pops up throughout organizations as people outside of mobile development are increasingly aware of the differences between mobile and traditional DevOps. As the need for adoption of processes specific to mobile development grows, technology leadership is looking for goals and metrics that make sense. Even though these will obviously vary from company to company or even from project to project, we can characterize four key components that will deliver results.

Three Killer Anti-Patterns in Continuous Performance Testing

Many developers have decided that building sustainable automated and continuous processes across the entire lifecycle, including performance engineering and testing, is a modern imperative. This article will highlight some important things to keep in mind when executing continuous performance testing. 

Are you ready?
You may also like: Evolution of Browser Testing

Avoid "Hurrying Up Just to Slow Down" Syndrome

There are a million causes of why we waste time. "Rework" isn't the only category in your value streams, not even close. Agile and iterative product teams often build prototypes to learn about the problem and to produce a useable product. While we could all improve planning and requirements gathering, we often find ourselves blocked from closing out work items by unanticipated dependencies and misaligned expectations.

Strategies to Deliver Apps Faster with Continuous Integration

Agile DevOps practices are changing the ways apps are being developed and delivered. This collaboration of software developers and IT operations staff allows for faster development cycles, more frequent updates, and faster delivery.

Companies not using DevOps might do software updates annually. That’s because the pathway to deployment could take a long time. Developers focused on code. When the code was completed, the operations team would go to work to make sure everything runs smoothly. Then a security team might analyze it. When an issue arose, it was back to the developers to start the cycle over again.

The Hitchhiker’s Guide  to  Jenkins Job Builder

Although the documentation for Jenkins Job Builder is very detailed, the step-by-step guide with examples for them is somehow missing. This was the main motivation for me to write this blog. 

Pre-Requisites

  1. Pip
  2. Git
  3. An up-and-running Jenkins instance

Setting Up Jenkins Job Builder

Here, we will be walking through the steps needed for using the Jenkins Job Builder.