Confused by testing terms and jargon? This talk walks through testing web applications, explaining the difference between unit testing and end to end testing. Several tools and concepts are also explored through a demo section.
Sample projects can be found at https://github.com/sethmcl/testing_web_applications.
Introductory overview of testing techniques for web application development. Explains where different testing methods fit in to the software development cycle.
Test any (yes, any) website using NightwatchJS - selenium based JavaScript test runner. We will cover
- prerequisites
- configuration
- writing tests
- reading reports
- continuous integration and services
An intro to nightwatch(a tool to create and run functional tests, e2e tests using selenium in the background) and examples of cases, also how to integrate nightwatch to a Continous Integration tool
Confused by testing terms and jargon? This talk walks through testing web applications, explaining the difference between unit testing and end to end testing. Several tools and concepts are also explored through a demo section.
Sample projects can be found at https://github.com/sethmcl/testing_web_applications.
Introductory overview of testing techniques for web application development. Explains where different testing methods fit in to the software development cycle.
Test any (yes, any) website using NightwatchJS - selenium based JavaScript test runner. We will cover
- prerequisites
- configuration
- writing tests
- reading reports
- continuous integration and services
An intro to nightwatch(a tool to create and run functional tests, e2e tests using selenium in the background) and examples of cases, also how to integrate nightwatch to a Continous Integration tool
Session from GIDS 2014, showing how to do automated Web testing using a variety of JavaScript frameworks, including QUnit, Jasmine, Protractor, Selenium, and PhantomJS
Carmen Popoviciu - Protractor styleguide | Codemotion Milan 2015Codemotion
In this talk, I would like to speak about best practices for writing e2e tests with Protractor. The styleguide that I will introduce, is a joint initiative of mine and @andresdom from Google. Some of the subjects that will be covered include why e2e testing is important, what e2e tests should cover, naming conventions, selector strategies, page objects, helper objects and performance considerations. That and lots of smileys obviously, because we wanted to smiley all the things ...right? ¯\_(ツ)_/¯
Fullstack End-to-end test automation with Node.js, one year laterMek Srunyu Stittri
Airware's cloud automation team returns with a year’s worth of lessons learned, and will share the challenges involved with building a full-stack test automation framework with Node.js while using the latest and greatest in JavaScript tools.
Topics
Async / Await - an alternative to Webdriver’s built-in control flow. Limitations with control flow. Use Babel to write the latest ES6 JavaScript syntax. Custom reporter with screenshots from Sauce Labs. Parallel tests and accurate reporting.
Type-safe JavaScript with Facebook’s Flow-type library.
Robust visual diffs
Actually testing is as important as development and we all want to write code that works. So, why not test our front-end code?
To do that we can use some tools as Selenium, Jasmine but I will explain QUnit because it's used in Drupal8 testing.
QUnit is a powerful, easy-to-use JavaScript unit testing framework. It's used by the jQuery, jQuery UI, jQuery Mobile projects, also by Drupal, and is capable of testing any generic JavaScript code.
Session presented at Drupalcamp Gotemburg 2013 where I explained how to include QUnit testing in our Drupal projects.
So you've heard about Selenium, but what's it really all about? Maybe you've tried writing some tests, but soon found yourself frustrated trying to get them to work reliably. If you are interested in using this great tool to do integration testing for your websites and help automate your testing, this is the talk for you! We'll look at all the kinds of things you can do in Selenium, how to approach your testing, and use a live site as an example of building a complete suite of tests that will ensure clean, bug-free site updates.
Node.js and Selenium Webdriver, a journey from the Java sideMek Srunyu Stittri
** Update **
There is now an updated version of this implementation with Javascript Async/Await
Recording - https://www.youtube.com/watch?v=BTpMB2-8qMM
Slides - https://www.slideshare.net/MekSrunyuStittri/endtoend-test-automation-with-nodejs-one-year-later
Abstract
With the growing popularity of NodeJS, many companies have embraced its adoption and gone full stack. The next logical move is to have the test framework be on the same stack. Unfortunately, proven ways of implementing a Selenium framework in JavaScript are very limited and very much fragmented.
Airware builds software and hardware for commercial drones; their cloud team ships code to production every week. In this talk, their cloud automation team will talk about: how they have built their Selenium framework with Node.js; the challenges of coming from a synchronous programming language like Java; lessons learned along this journey; and other technologies/tools used to complement testing their cloud and rolling out quality.
Recording by New Relic and SauceLabs - https://www.youtube.com/watch?v=CqeCUyoIEo8
ForwardJS 2017 - Fullstack end-to-end Test Automation with node.jsMek Srunyu Stittri
Slide deck for ForwardJS 2017 in San Francisco - March 1st 2017
https://forwardjs.com/schedule#lecture-224
Airware builds hardware, software and cloud for commercial drones. We have transitioned to Node.js for cloud functional test automation in 2015. The purpose of this is to unite Fullstack developers and Automation engineers to speak in the same language which is JavaScript. With a year worth of lessons learnt, we will share the challenges involved with building a full-stack test automation framework with Node.js while using the latest and greatest in JavaScript tools.
Chrome Extensions are fun to build and very powerful, thanks to the expansive API Google provides. This talk will explore techniques for structuring and testing your extension projects, using tools such as Grunt, Browserify and Venus.js. A quick refresher of major extension development concepts will be also be reviewed.
Automation Abstraction Layers: Page Objects and BeyondAlan Richardson
An overview of different approaches to Page Objects and Domain Objects for GUI Automation. Examples use WebDriver and Java.
Full source code is available to download, For more details see the associated blog post.
UI Testing Best Practices - An Expected JourneyOren Farhi
This slide focus on the good reasons for writing unit tests for testing ui.
Much like you're testing ui manually, you can have simple minimal code doing that for you.
Efficient JavaScript Unit Testing, May 2012Hazem Saleh
One of the biggest challenges of many web applications is the support on the different browsers with different versions. JavaScript code that runs on Safari does not necessarily mean it will work on IE or Firefox or Google chrome. This challenge is inherited from the lack of testing the JavaScript code that lives in the presentation tier from day one. Without unit testing the JavaScript code, organization will pay much money for testing, re-testing, and re-testing web applications for just deciding upgrading or supporting new browsers. This presentation shows the solution of this problem.
Slides for the presentation I did for the Vancouver AngularJS meetup group.
http://www.meetup.com/vanangularJS/events/216391652/
The code is available on my github account.
https://github.com/aeisenberg/angular-app/tree/vanangular-protractor
(Notice the branch is not master.)
Session from GIDS 2014, showing how to do automated Web testing using a variety of JavaScript frameworks, including QUnit, Jasmine, Protractor, Selenium, and PhantomJS
Carmen Popoviciu - Protractor styleguide | Codemotion Milan 2015Codemotion
In this talk, I would like to speak about best practices for writing e2e tests with Protractor. The styleguide that I will introduce, is a joint initiative of mine and @andresdom from Google. Some of the subjects that will be covered include why e2e testing is important, what e2e tests should cover, naming conventions, selector strategies, page objects, helper objects and performance considerations. That and lots of smileys obviously, because we wanted to smiley all the things ...right? ¯\_(ツ)_/¯
Fullstack End-to-end test automation with Node.js, one year laterMek Srunyu Stittri
Airware's cloud automation team returns with a year’s worth of lessons learned, and will share the challenges involved with building a full-stack test automation framework with Node.js while using the latest and greatest in JavaScript tools.
Topics
Async / Await - an alternative to Webdriver’s built-in control flow. Limitations with control flow. Use Babel to write the latest ES6 JavaScript syntax. Custom reporter with screenshots from Sauce Labs. Parallel tests and accurate reporting.
Type-safe JavaScript with Facebook’s Flow-type library.
Robust visual diffs
Actually testing is as important as development and we all want to write code that works. So, why not test our front-end code?
To do that we can use some tools as Selenium, Jasmine but I will explain QUnit because it's used in Drupal8 testing.
QUnit is a powerful, easy-to-use JavaScript unit testing framework. It's used by the jQuery, jQuery UI, jQuery Mobile projects, also by Drupal, and is capable of testing any generic JavaScript code.
Session presented at Drupalcamp Gotemburg 2013 where I explained how to include QUnit testing in our Drupal projects.
So you've heard about Selenium, but what's it really all about? Maybe you've tried writing some tests, but soon found yourself frustrated trying to get them to work reliably. If you are interested in using this great tool to do integration testing for your websites and help automate your testing, this is the talk for you! We'll look at all the kinds of things you can do in Selenium, how to approach your testing, and use a live site as an example of building a complete suite of tests that will ensure clean, bug-free site updates.
Node.js and Selenium Webdriver, a journey from the Java sideMek Srunyu Stittri
** Update **
There is now an updated version of this implementation with Javascript Async/Await
Recording - https://www.youtube.com/watch?v=BTpMB2-8qMM
Slides - https://www.slideshare.net/MekSrunyuStittri/endtoend-test-automation-with-nodejs-one-year-later
Abstract
With the growing popularity of NodeJS, many companies have embraced its adoption and gone full stack. The next logical move is to have the test framework be on the same stack. Unfortunately, proven ways of implementing a Selenium framework in JavaScript are very limited and very much fragmented.
Airware builds software and hardware for commercial drones; their cloud team ships code to production every week. In this talk, their cloud automation team will talk about: how they have built their Selenium framework with Node.js; the challenges of coming from a synchronous programming language like Java; lessons learned along this journey; and other technologies/tools used to complement testing their cloud and rolling out quality.
Recording by New Relic and SauceLabs - https://www.youtube.com/watch?v=CqeCUyoIEo8
ForwardJS 2017 - Fullstack end-to-end Test Automation with node.jsMek Srunyu Stittri
Slide deck for ForwardJS 2017 in San Francisco - March 1st 2017
https://forwardjs.com/schedule#lecture-224
Airware builds hardware, software and cloud for commercial drones. We have transitioned to Node.js for cloud functional test automation in 2015. The purpose of this is to unite Fullstack developers and Automation engineers to speak in the same language which is JavaScript. With a year worth of lessons learnt, we will share the challenges involved with building a full-stack test automation framework with Node.js while using the latest and greatest in JavaScript tools.
Chrome Extensions are fun to build and very powerful, thanks to the expansive API Google provides. This talk will explore techniques for structuring and testing your extension projects, using tools such as Grunt, Browserify and Venus.js. A quick refresher of major extension development concepts will be also be reviewed.
Automation Abstraction Layers: Page Objects and BeyondAlan Richardson
An overview of different approaches to Page Objects and Domain Objects for GUI Automation. Examples use WebDriver and Java.
Full source code is available to download, For more details see the associated blog post.
UI Testing Best Practices - An Expected JourneyOren Farhi
This slide focus on the good reasons for writing unit tests for testing ui.
Much like you're testing ui manually, you can have simple minimal code doing that for you.
Efficient JavaScript Unit Testing, May 2012Hazem Saleh
One of the biggest challenges of many web applications is the support on the different browsers with different versions. JavaScript code that runs on Safari does not necessarily mean it will work on IE or Firefox or Google chrome. This challenge is inherited from the lack of testing the JavaScript code that lives in the presentation tier from day one. Without unit testing the JavaScript code, organization will pay much money for testing, re-testing, and re-testing web applications for just deciding upgrading or supporting new browsers. This presentation shows the solution of this problem.
Slides for the presentation I did for the Vancouver AngularJS meetup group.
http://www.meetup.com/vanangularJS/events/216391652/
The code is available on my github account.
https://github.com/aeisenberg/angular-app/tree/vanangular-protractor
(Notice the branch is not master.)
This presentation provides a brief overview on becoming a member of the Node.js Foundation. For more information, visit https://nodejs.org/en/foundation/members/.
La Importancia de las Certificaciones en TISoftware Guru
En esta sesión daremos a conocer los beneficios que tienen las Certificaciones en TI para la gente del medio, y los apoyos que MexicoFIRST otorga a los participantes en las Certificaciones.
Dirigido a: Gente de la Industria en TI e interesados en Certificaciones de Clase Mundial con apoyo de MexicoFIRST
Describe los pasos para crear un proyecto PHP en netbeans usando WAMP Server como plataforma. Además describe la forma de crear clases PHP y realizar un debug con XDebug.
Using chrome developer tools for QA'ing Optimizely Optimizely
Chrome Developer Tools allow for an incredibly simple and accurate Q/A of your live Experiments. This walkthrough is for users of Optimizely that are responsible for experiment creation and experiment quality assurance. Coding skills are not required to follow along, but may be helpful in understanding the info Chrome Developer Tools displays or outputs.
In this post, we will cover 3 main tools and their relation to Optimizely Experiment QA.
Elements Panel
JavaScript Console
Network Traffic Panel
DrupalCon Dublin 2016 - Automated browser testing with Nightwatch.jsVladimir Roudakov
Does your website run automated nightly tests and reports on what was changed or broken?
Is automated testing part of your daily routine or deployment process?
If not, then meet NightwatchJS: open source automated testing framework based on popular Selenium browser testing tool.
In this session we will cover
- basics of browser automated testing
- nightwatchJS scripts [no coding experience required!]
- writing tests for custom functionality
- headless browser setup on Linux
- alternative browser testing framework
Slides and video is available here: https://events.drupal.org/dublin2016/sessions/automated-browser-testing-nightwatchjs
A tutorial on how the process of writing an application using a browser’s WebAuthn API, plus how to install a server, how to generate authentication challenges & responses, and how to integrate with related IAM infrastructure.
Code: https://github.com/fido-alliance/webauthn-demo
Live slides: http://slides.com/herrjemand/jan-2018-fido-seminar-webauthn-tutorial#/
UA testing with Selenium and PHPUnit - PHPBenelux Summer BBQMichelangelo van Dam
Nothing is as frustrated as deploying a new release of your web application to find out functionality you had doesn't work anymore. Of course you have all your unit tests in place and you run them through your CI environment, but nothing prepared you to a failing javascript error or a link that doesn't work anymore. Welcome to User Acceptance testing or UAT. Before you start putting real people in front of your application, create macros and export them as PHPUnit test classes. Then run them in an automated way just like your unit tests and hook them into your CI. In this talk I will show you how easy it is to create Selenium macros that can be converted into PHPUnit scripts and run automatically on different virtual machines (VM's) so you can test all different browsers on a diversity of operating systems.
Nothing is as frustrated as deploying a new release of your web application to find out functionality you had doesn't work anymore. Of course you have all your unit tests in place and you run them through your CI environment, but nothing prepared you to a failing javascript error or a link that doesn't work anymore. Welcome to User Acceptance testing or UAT. Before you start putting real people in front of your application, create macros and export them as PHPUnit test classes. Then run them in an automated way just like your unit tests and hook them into your CI. In this talk I will show you how easy it is to create Selenium macros that can be converted into PHPUnit scripts and run automatically on different virtual machines (VM's) so you can test all different browsers on a diversity of operating systems.
EWD 3 Training Course Part 43: Using JSON Web Tokens with QEWD REST ServicesRob Tweed
This is part 43 of the EWD 3 Training Course. In this presentation, you'll learn how to use JSON Web Tokens (JWTs) instead of server-side QEWD Sessions in your REST Services
Node.js vs Play Framework (with Japanese subtitles)Yevgeniy Brikman
Video: http://www.nicovideo.jp/watch/1410857293
Here's the showdown you've been waiting for: Node.js vs Play Framework. Both are popular open source web frameworks that are built for developer productivity, asynchronous I/O, and the real time web. But which one is easier to learn, test, deploy, debug, and scale? Should you pick Javascript or Scala? The Google v8 engine or the JVM? NPM or Ivy? Grunt or SBT? Two frameworks enter, one framework leaves.
This version of the presentation has Japanese subtitles. For the English only version, see http://www.slideshare.net/brikis98/nodejs-vs-play-framework
Nothing is as frustrated as deploying a new release of your web application to find out functionality you had doesn't work anymore. Of course you have all your unit tests in place and you run them through your CI environment, but nothing prepared you to a failing javascript error or a link that doesn't work anymore. Welcome to User Acceptance testing or UAT. Before you start putting real people in front of your application, create macros and export them as PHPUnit test classes. Then run them in an automated way just like your unit tests and hook them into your CI. In this talk I will show you how easy it is to create Selenium macros that can be converted into PHPUnit scripts and run automatically on different virtual machines (VM's) so you can test all different browsers on a diversity of operating systems.
EWD 3 Training Course Part 36: Accessing REST and Web Services from a QEWD ap...Rob Tweed
This is part 36 of the EWD 3 Training Course. This presentation explains how your QEWD applications and Web/REST Service APIs can invoke and use external Web / REST services as part of their back-end handler logic
Workshop on how to build Vaadin Add-ons. We introduce two styles of building Vaadin add-on components for Vaadin: integrating an existing GWT widget (DatePicker), and integrating an existing JavaScript library (three.js).
Here at Digital Natives we are devoted to support the automated testing of our applications. Lately we write more and more complex business logics on front-end side therefore we need to test front-end side codes more accurately. I put together a presentation for our weekly developer meeting concerning this topic, where I reviewed the current possibilities, but I think that it might be interesting for other front-end programmers too.
Nothing is as frustrated as deploying a new release of your web application to find out functionality you had doesn't work anymore. Of course you have all your unit tests in place and you run them through your CI environment, but nothing prepared you to a failing javascript error or a link that doesn't work anymore. Welcome to User Acceptance testing or UAT. Before you start putting real people in front of your application, create macros and export them as PHPUnit test classes. Then run them in an automated way just like your unit tests and hook them into your CI. In this talk I will show you how easy it is to create Selenium macros that can be converted into PHPUnit scripts and run automatically on different virtual machines (VM's) so you can test all different browsers on a diversity of operating systems.
Slide links:
- https://lumberjack.rareloop.com
- https://docs.lumberjack.rareloop.com
- https://github.com/Rareloop/lumberjack-bedrock-installer
- https://github.com/Rareloop/lumberjack
- https://github.com/Rareloop/lumberjack-validation
- https://github.com/Rareloop/hatchet
- https://lizkeogh.com/2017/08/31/reflecting-reality/amp
- https://www.upstatement.com/timber
- https://roots.io/bedrock
- https://scotch.io/bar-talk/s-o-l-i-d-the-first-five-principles-of-object-oriented-design
- https://github.com/zendframework/zend-diactoros
- https://www.php-fig.org
- http://php-di.org
---
Often WordPress themes are not easy to change, maintain or fun to work on. This can rule WordPress out as a viable option for bespoke, non-trivial websites.
In this talk we’ll dive into how this happens & look at how we can benefit from software engineering techniques to help make your code easier to change. I’ll also show how using Lumberjack, a powerful MVC framework built on Timber, can be used to power-up your themes.
About us
Author: Ted Piotrowski
Find me at: tpiotrowski@atlassian.com
Sample code: https://bitbucket.org/tpiotrowski/js-hcm
Presentation made for Javascript Ho Chi Minh City Meetup Group
You can find us at:
http://www.meetup.com/JavaScript-Ho-Chi-Minh-City/
https://www.facebook.com/JavaScriptHCMC
https://plus.google.com/u/0/communities/116105314977285194967
EWD 3 Training Course Part 5a: First Steps in Building a QEWD ApplicationRob Tweed
This presentation is part 5 in the EWD 3 Training Course. It describes the first steps you should take when building a browser-based desktop QEWD application. This version of Part 5 is for anyone using QEWD on Windows with the Cache database.
Introduction to programming with JavaScript, Chapter 1.
Video version: https://www.youtube.com/watch?v=Ps03yn2XlUw
In this chapter, we explore the basics of computer programming through hands on exercises with JavaScripts.
Concepts covered:
- expressions
- statements
- values
- operators
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Modern design is crucial in today's digital environment, and this is especially true for SharePoint intranets. The design of these digital hubs is critical to user engagement and productivity enhancement. They are the cornerstone of internal collaboration and interaction within enterprises.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Your Digital Assistant.
Making complex approach simple. Straightforward process saves time. No more waiting to connect with people that matter to you. Safety first is not a cliché - Securely protect information in cloud storage to prevent any third party from accessing data.
Would you rather make your visitors feel burdened by making them wait? Or choose VizMan for a stress-free experience? VizMan is an automated visitor management system that works for any industries not limited to factories, societies, government institutes, and warehouses. A new age contactless way of logging information of visitors, employees, packages, and vehicles. VizMan is a digital logbook so it deters unnecessary use of paper or space since there is no requirement of bundles of registers that is left to collect dust in a corner of a room. Visitor’s essential details, helps in scheduling meetings for visitors and employees, and assists in supervising the attendance of the employees. With VizMan, visitors don’t need to wait for hours in long queues. VizMan handles visitors with the value they deserve because we know time is important to you.
Feasible Features
One Subscription, Four Modules – Admin, Employee, Receptionist, and Gatekeeper ensures confidentiality and prevents data from being manipulated
User Friendly – can be easily used on Android, iOS, and Web Interface
Multiple Accessibility – Log in through any device from any place at any time
One app for all industries – a Visitor Management System that works for any organisation.
Stress-free Sign-up
Visitor is registered and checked-in by the Receptionist
Host gets a notification, where they opt to Approve the meeting
Host notifies the Receptionist of the end of the meeting
Visitor is checked-out by the Receptionist
Host enters notes and remarks of the meeting
Customizable Components
Scheduling Meetings – Host can invite visitors for meetings and also approve, reject and reschedule meetings
Single/Bulk invites – Invitations can be sent individually to a visitor or collectively to many visitors
VIP Visitors – Additional security of data for VIP visitors to avoid misuse of information
Courier Management – Keeps a check on deliveries like commodities being delivered in and out of establishments
Alerts & Notifications – Get notified on SMS, email, and application
Parking Management – Manage availability of parking space
Individual log-in – Every user has their own log-in id
Visitor/Meeting Analytics – Evaluate notes and remarks of the meeting stored in the system
Visitor Management System is a secure and user friendly database manager that records, filters, tracks the visitors to your organization.
"Secure Your Premises with VizMan (VMS) – Get It Now"
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
Data privacy is one of the most critical issues that businesses face. This presentation shares insights on the principles and best practices for ensuring the resilience and security of your workload.
Drawing on a real-life project from the HR industry, the various challenges will be demonstrated: data protection, self-healing, business continuity, security, and transparency of data processing. This systematized approach allowed to create a secure AWS cloud infrastructure that not only met strict compliance rules but also exceeded the client's expectations.
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Hivelance Technology
Cryptocurrency trading bots are computer programs designed to automate buying, selling, and managing cryptocurrency transactions. These bots utilize advanced algorithms and machine learning techniques to analyze market data, identify trading opportunities, and execute trades on behalf of their users. By automating the decision-making process, crypto trading bots can react to market changes faster than human traders
Hivelance, a leading provider of cryptocurrency trading bot development services, stands out as the premier choice for crypto traders and developers. Hivelance boasts a team of seasoned cryptocurrency experts and software engineers who deeply understand the crypto market and the latest trends in automated trading, Hivelance leverages the latest technologies and tools in the industry, including advanced AI and machine learning algorithms, to create highly efficient and adaptable crypto trading bots
7. "End to End" testing
1. Navigate to Login page
2. Locate username form field, type in seth
3. Locate password form field, type in html5dev
4. Locate submit form button and click it
5. Wait for form submission to complete
6. Verify that title of page is now equal to Welcome!
10. Selenium
HTTP
Node.js module
Test Script
Test Runner WebDriver Web Browser
Node.js application JAVA JAR
11. Selenium
WebDriver
Selenium
WebDriver
Web
HTTP
Test Runner Browser
JAVA JAR
Test Script
Selenium
Grid
Selenium
WebDriver
Web
Browser
JAVA JAR
Selenium
WebDriver
Web
Browser
JAVA JAR
Web
Browser
JAVA JAR
12. Features
★ Good documentation
★ Use CSS or XPATH selectors
★ Test runner can execute sequentially or in parallel
★ Test filtering by file name pattern, folders and tags
★ SauceLabs + BrowserStack support
★ Built in JUnit XML reporting
★ Extension model for custom commands
13. created by
Andrei Rusu
@beatfactor
learn more: www.linkedin.com/in/beatfactor
14. ~9,000
downloads per month
~2,200
stars on github
~150
forks on github
~83%
code coverage
learn more: www.npmjs.org/package/nightwatch
17. Sample test: Login flow
1. Navigate to Login page
2. Locate username form field, type in seth
3. Locate password form field, type in html5dev
4. Locate submit form button and click it
5. Wait for form submission to complete
6. Verify that title of page is now equal to Welcome!
43. [Login] Test Suite
==================
Running: Fill out form and login
✔ Testing if the page title equals "Awesome App".
✔ Testing if the page title equals "Welcome!".
OK. 2 total assertions passed. (2.233s)
44. module.exports = {
'Fill out form and login': function (client) {
client
.url('http://localhost:8000')
.assert.title('Awesome App')
.setValue('input[name=username]', 'seth')
.setValue('input[name=password]', 'html5dev')
.click('input[type=submit]')
.assert.title('Welcome!')
.end();
}
};
login.js
45. module.exports = {
'Fill out form and login': function (client) {
client
.url('http://localhost:8000')
.assert.title('Awesome App')
.setValue('input[name=username]', 'seth')
.setValue('input[name=password]', 'html5dev')
.click('input[type=submit]')
.assert.title('Welcome!')
.end();
}
};
login.js
46. module.exports = {
'Fill out form and login': function (client) {
client
.url('http://localhost:8000')
.assert.title('Awesome App')
.setValue('input[name=username]', 'seth')
.setValue('input[name=password]', 'html5dev')
.click('input[type=submit]')
.assert.title('Welcome!')
.end();
}
};
login.js
47. module.exports = {
'Fill out form and login': function (client) {
client
.url('http://localhost:8000')
.assert.title('Awesome App')
.setValue('input[name=username]', 'seth')
.setValue('input[name=password]', 'html5dev')
.click('input[type=submit]')
.assert.title('Welcome!')
.end();
}
};
login.js
53. module.exports = {
'Fill out form and login': function (client) {
var data = client.globals;
client
.url(data.urls.login)
.assert.title('Awesome App')
.setValue('input[name=username]', data.username)
.setValue('input[name=password]', data.password)
.click('input[type=submit]')
.assert.title('Welcome!')
.end();
}
};
login.js
54. module.exports = {
'Fill out form and login': function (client) {
var data = client.globals;
client
.url(data.urls.login)
.assert.title('Awesome App')
.setValue('input[name=username]', data.username)
.setValue('input[name=password]', data.password)
.click('input[type=submit]')
.assert.title('Welcome!')
.end();
}
};
login.js
55. module.exports = {
'Fill out form and login': function (client) {
var data = client.globals;
client
.url(data.urls.login)
.assert.title('Awesome App')
.setValue('input[name=username]', data.username)
.setValue('input[name=password]', data.password)
.click('input[type=submit]')
.assert.title('Welcome!')
.end();
}
};
login.js
56. module.exports = {
'Fill out form and login': function (client) {
var data = client.globals;
client
.url(data.urls.login)
.assert.title('Awesome App')
.setValue('input[name=username]', data.username)
.setValue('input[name=password]', data.password)
.click('input[type=submit]')
.assert.title('Welcome!')
.end();
}
};
login.js
57. module.exports = {
'Fill out form': function (client) {
var data = client.globals;
client
.url(data.urls.login)
.assert.title('Awesome App')
.setValue('input[name=username]', data.username)
.setValue('input[name=password]', data.password);
},
'Submit form': function (client) {
var data = client.globals;
client
.click('input[type=submit]')
.assert.title('Welcome!')
.end();
},
};
login.js
58. module.exports = {
'Fill out form': function (client) {
var data = client.globals;
client
.url(data.urls.login)
.assert.title('Awesome App')
.setValue('input[name=username]', data.username)
.setValue('input[name=password]', data.password);
},
'Submit form': function (client) {
console.log('previous step is done executing');
var data = client.globals;
client
.click('input[type=submit]')
.assert.title('Welcome!')
.end();
},
};
login.js
59. [Login] Test Suite
===================
Running: Fill out form
✔ Testing if the page title equals "Awesome App".
OK. 1 assertions passed. (1.567s)
Running: Submit form
✔ Testing if the page title equals "Welcome!".
OK. 1 assertions passed. (204ms)
61. Assert vs. Verify
assert.title('Awesome App') If false, log failure
and stop running current
test suite
verify.title('Awesome App') If false, log failure
and continue running
current test suite
65. Assertions
attributeEquals
containsText
cssClassPresent
cssClassNotPresent
cssProperty
elementPresent
elementNotPresent
learn more: nightwatchjs.org/api
hidden
title
urlContains
value
valueContains
visible
66. Using custom commands and assertions
module.exports = {
'Load Netflix.com': function (client) {
client
.url('http://www.netflix.com')
.tagCount('a', function (result) {
console.log(
'NOTE: there are %s anchor elements on the pagen',
result.value
);
})
.assert.tagCountGreaterThan('a', 100)
.end();
}
};
learn more: nightwatchjs.org/guide#custom-commands
67. Using custom commands and assertions
module.exports = {
'Load Netflix.com': function (client) {
client
.url('http://www.netflix.com')
.tagCount('a', function (result) {
console.log(
'NOTE: there are %s anchor elements on the pagen',
result.value
);
})
.assert.tagCountGreaterThan('a', 100)
.end();
}
};
learn more: nightwatchjs.org/guide#custom-commands
68. Using custom commands and assertions
module.exports = {
'Load Netflix.com': function (client) {
client
.url('http://www.netflix.com')
.tagCount('a', function (result) {
console.log(
'NOTE: there are %s anchor elements on the pagen',
result.value
);
})
.assert.tagCountGreaterThan('a', 100)
.end();
}
};
learn more: nightwatchjs.org/guide#custom-commands
69. Extending Nightwatch: custom commands
// command to return the number of elements in a page
// which are of a certain tag name
exports.command = function (tagName, callback) {
callback = callback || function () {};
this.execute(function (tagName) {
return document.getElementsByTagName(tagName).length;
}, [tagName], function (result) {
callback.call(this, result);
});
return this; // allows the command to be chained.
};
learn more: nightwatchjs.org/guide#custom-commands
70. Extending Nightwatch: custom assertions
var util = require('util');
exports.assertion = function(tagName, minCount, msg) {
var defaultMessage = 'Testing if there are more than %s <%s> elements on the page';
var errorMessage = 'Error executing command';
// Set default message
this.message = msg || util.format(defaultMessage, minCount, tagName);
// The expected text
this.expected = function () {
return 'to find at least ' + (minCount+1) + ' ' + tagName + ' elements on page';
};
// returning true means assertion passed
// returning false means assertion failed
this.pass = function(value) {
return (value > minCount);
};
// returning true means element could not be found
this.failure = function (result) {
var failed = (result === false || (result && result.status === -1));
if (failed) {
this.message = msg || errorMessage;
}
return failed;
};
learn more: nightwatchjs.org/guide#custom-assertions
// passed result of calling this.command()
this.value = function (result) {
return result.value;
72. more to explore
before and after test hooks!
take screenshots!
use sauce labs to run tests!
use tags to organize test suites!
learn more: www.nightwatchjs.org
create custom commands!
create custom assertions!
contribute to nightwatch!
...and more
73. Get started
prerequisite: node.js
1. Use npm to install nightwatch
2. Download selenium-server-standalone.jar
3. Create Nightwatch config file
4. Create some tests
74.
75. Closing thoughts
Nightwatch.js is best selenium testing framework
available to JavaScript developers
Good community, actively supported
Easy to get started, check it out