Detailed Notes
Welcome, if you are a tester or developer interested in automation testing or are new to test automation tools than you defiantly need to check out TestProject. However, if you are not familiar with this tool that's OK. In Test Project A Review of Version 2.0 we cover all the new features in Test Project 2.0 as well as walk you through using the tool to setup your first test.
Test Project A Review of Version 2.0 Overview:
What is Test Project What's new in Version 2 Overview of the tool Creating your first test case What is Test Project?
TestProject is a community driven tool and has a free forever plan that is fully featured and that you can get started with in moments. In addition they have a lot of documentation that will help you with all the details you need to use TestProject to create effective test automation that your whole team can use. What Makes Test Project Unique?
First of its kind community powered test automation framework. Second its 100% free test automation development framework designed for agile teams! Advanced built-in recording capabilities AI-Powered self healing technology built in. It seamlessly supports iFrames, Popups and Dynamic Elements. With built in Adaptive-wait technology it automatically handles deviations in web application loading times. Also supports both hybrid cloud and completely offline modes Has a CLI Agent. Finally, it's free forever for anyone to use. Start with a new account:
Create a new account or connect to an existing google or microsoft account.
Install & Register
First start by downloading the TestProject tool. Then, install the TestProject tool on your machine. Finally, make sure the tool is up and running. Make sure your os security settings allow test agent to access your machine
Additional Resources
Hybrid Cloud and Offline Mode https://docs.testproject.io/getting-started/hybrid-cloud-and-offline-mode Understanding Test Files https://docs.testproject.io/getting-started/hybrid-cloud-and-offline-mode/understanding-test-files Using AI to Improve Testing https://docs.testproject.io/getting-started/using-ai-to-improve-testing Finally, this series comes from our mentoring/mastermind classes. These classes are virtual meetings that focus on how to improve our technical skills and build our businesses. After all the goals of each member vary. However, this diversity makes for great discussions and a ton of educational value every time we meet. We hope you enjoy viewing this series as much as we enjoy creating it. As always, this may not be all new to you, but we hope it helps you be a better developer.
Transcript Text
[Music] okay jump back over to our test some other things we have here in our project we can look at our elements so if we run a test it's going to keep track of all the different fields that we have inputs for so we have our address here so if i click address and edit so i have a field called address the description is address input we're looking it up by id so just like selenium just like traditional web test we can do css selectors we can do xpath lookups tag names link text partial link test id name and class name and then over here we can do if we're doing by id we just type in the id if it's xpath has to be the xpath so all this is pretty much what we've seen before using traditional record playback tools or if you're using selenium or any type of web testing this is pretty much identical the trick here though is what this element section allows you to do you can create folders and each folder can be a particular page and therefore you can start building your page objects for each folder so if you had like a root folder okay you start with home if you go to the next one you would select that one like log in contact us and so on so you have address it tells you the type button see here's the next path so xpath you type in the xpath you also can tell what type it is header abbreviation access key acronym address so this is pretty neat you can add some additional types here if you go back to my framework basically i had types defined as any type of web element that you could possibly have they it's actually funny they actually want the similar approach here within their application you can also select different types of applications so if you create different test suites each application will be defined here by their url and by their application name if you want to create any data source files to load you can add them here and then we can also add any types of parameters like if we have different environment setups we can set them up here under project we briefly looked at monitor so monitor is kind of cool because it gives you an execution history of the jobs that you have run you can actually schedule jobs to run so if you want to have kick off a test every day at six o'clock you can do that here your execution in progress so when the job is running it is here the other thing that's kind of interesting here is we have a running tally so if this is an enterprise suite and we have a whole bunch of different tests and jobs running we can monitor it from here right at the top you can also look and see what the history is how many tested you run today how many jobs how many agents are currently active and then you can just go into the history of each of these tests for instance doctor who failed here so if i go look at that one 100 percent failure and if we dig into this guy a little bit more try to run it again nope doesn't want to run so if we go look at the full summary report for this guy we see that oh we tried to run it on safari as a standalone and it failed it didn't even kick off so the problem here is because of our security settings in safari and if you've noticed i have not gone into a single line of code this is all one hundred percent codeless you manage the entire project from your test project now if you do this from an offline status yes you will have to deal with some code some configuration setup but the nice part is all this runs from the command line agent and use still have the same project interface you still have the same reporting the same monitoring you can do this all offline agents so if i click agents i can see the different types of agents that are running so right now i have an apple agent ready and if i had like any disconnected agents which i don't it's interesting too because if i hover over agent it tells you they have agents for windows linux mac and docker so again if you are running multiple docker instances and you want to test your products across different say operating systems linux you can do all that within docker you can set up physical machines with different agents all that can be set up here integrations so i again i'm not going to get into mobile and i'm also not going to get into too much of the command line integrations or sdks today but they do have a plethora of developer tools that you can use you can interface it through the api there are web hooks cloud extensions they have get integration as well q test and additional developer add-on speaking of add-ons so if we go here there are community add-ons test project add-ons you can actually create your own add-ons what i like to hear those just by looking at the community there are some things that jumped out at me right away first and foremost pdf actions so that little utility file i had to write for my framework to actually be able to read pdfs interact with pdfs they already have a plugin here they also have one for mongodb they also have some examples for using java i o using excel so interfacing probably using poi to interface with excel documentations android monkey base 64 encoder this guy's useful especially if you're doing any type of encryption so they have a lot of useful add-ons already available and out of the box like you can even pick the community oh you know is there anything for apple android or web so you can turn these on and see which ones you want to find and i'm not going to get too deep into those today all right so let's go out here and build our first test so let's click new test and we have some options we can do it by code web or mobile so today we're going to focus all on web so we'll do next and we'll just give this one a sample name so test name here i want to hit my doctor who website so doctor whose stuff test test website flow more descriptive the better and any tags you want to put in as well doctor who prom wordpress so on next all right select the web application so we're going to do doctor who's stuff now if you do not have your application here already you can add another one so let me back up for just a second here close this go back over here to applications and let me delete the one i have so let's do this cleanly all right so new test again web next doctor who want to test the doctor who page functionality and we'll just give it one tag for now wordpress wordpress all right hit next all right so now we want to select our web applications well we currently don't have it so we need to add a new one so you add new you give it a name and then you give it your url and then you click done then you select the application you want hit next now this is interesting so we can record or we can edit an existing test so for now we're going to do a record and here's what's really cool so with version 2.0 we can also now save or record directly to file so we can record this and save it directly to our file system if we do that we then can upload it into our interface when we're done but for now we'll keep it simple we'll do cloud if you forget you can click the little information icon here and it gives you a quick overview of the difference between the two so the file saves the test as a yaml file on your machine with no footprint but if you can still upload it to the cloud to get the full beauty access to it alright so we have cloud record start recording now if you remember the old selenium ide tool when you open up selenium ide it will open up ask you for your url you want to start with and then it starts the browser and you have the recorder on the side same thing happens here so here we have our test project recorder and we have our website if for some reason the recorder gets in your way you can minimize it so you can actually navigate through your website so if i click latest news there we go and i re-click the test project to bring up the step so it actually recorded my step so we're going to give it the name click which is the action latest news which is the text of the link i clicked link it's going to have an action which is click and we click the element latest views but because i do not have an id this is a wordpress so it's generated it had to use the xpath now we can also look at some other advanced options here so we can actually add some criteria you know what to do if the test fails so this is where some of that self healing and ai components come in so we can actually set it up to handle different configurations different things that happen if it fails you know what do we want to take a screenshot so you can blanketly set this up to default to do something every time or you can custom configure each step as to how it's going to be handled when a test step fails so that's kind of cool some other things that are here within the recorder you can go to parameters so here you can pre-record a couple different parameters if you have test data you want to populate you can look up a locator so you can go css locator you can do xpath tag name link text partial link same with selenium so this is pretty much all the selenium logic pre-built so like if i do say link name and we'll say the value what's the name of the one i click latest so we'll do the latest and evaluate and it looks within the page to see if it can find what you're looking for and if you can't find it you can click highlight it will find it for you as you move through your application you see this little box pops up this is kind of cool so i can click the three dots when i'm on an element i can check out the actions so test project works with angular so it handles the drag and drop it will also clear contents for you and clear contents if visible we can call the clear element key we can click it we can click until gone so all the different selenium actions are available for this element validations we also have all the selenium validations as well does it contain text is it clickable is it not present is it present is selected is visible attributes again here's the interesting part so if i hover over attributes for this element it gives me the xpath it gives me the text the tag name class and item property all these things that typically when you're doing web-based testing you have to go open up the the developer console you have to go look at the actual code you don't have to do that anymore not unless you absolutely want to if you just want to record a quick test this is an easy way to do it very clean very easy and we can save the element if we need it the other thing too we have this little hierarchy button here i can click that and it gives me all the components to get to this so if i want to walk the chain i can go to the div and it takes me to the top of the page and then i can walk back down you
Transcript Segments
[Music]
okay jump back over to our test
some other things we have here in our
project we can look at our elements
so if we run a test it's going to keep
track of all the different fields that
we have inputs for so we have our
address here so if i click address and
edit so i have a field called address
the description is address input
we're looking it up by id
so
just like selenium just like traditional
web test we can do css selectors we can
do xpath lookups tag names link text
partial link test
id name and class name
and then over here we
can do if we're doing by id we just type
in the id if it's xpath has to be the
xpath so all this is pretty much what
we've seen before using traditional
record playback tools or if you're using
selenium or any type of web testing this
is pretty much identical
the trick here though is what this
element section
allows you to do
you can create folders and each folder
can be a particular page and therefore
you can start building your page objects
for each folder so if you had like a
root folder okay you start with home
if you go to the next one you would
select that one
like log in contact us and so on
so you have address it tells you the
type
button see here's the next path
so xpath you type in the xpath
you also can tell what type
it is header
abbreviation access key acronym
address so this is pretty neat
you can add some additional types here
if you go back to my framework basically
i had types defined as any type of
web element that you could possibly have
they it's actually funny they actually
want the similar approach here within
their application
you can also select different types of
applications so if you create different
test suites each application will be
defined here by their url and by their
application name
if you want to create any data source
files to load you can add them here
and then we can also add any types of
parameters like if we have different
environment setups we can set them up
here
under project
we briefly looked at monitor so monitor
is kind of cool because it gives you an
execution history
of the jobs that you have run
you can actually schedule jobs to run so
if you want to have kick off a test
every day at six o'clock you can do that
here
your execution in progress so when the
job is running it is here the other
thing that's kind of interesting here is
we have a running tally so if this is an
enterprise suite and we have a whole
bunch of different tests and jobs
running we can monitor it from here
right at the top
you can also look and see what the
history is how many tested you run today
how many jobs how many agents are
currently active and then you can just
go into the history of each of these
tests for instance doctor who failed
here so if i go look at that one
100 percent failure
and if we dig into this guy a little bit
more
try to run it again nope doesn't want to
run
so if we go look at the full summary
report for this guy
we see that oh we tried to run it on
safari
as a standalone and it failed it didn't
even kick off so the problem here
is because of our security settings in
safari and if you've noticed i have not
gone into a single line of code this is
all one hundred percent codeless
you manage the entire project from your
test project
now if you do this from an offline
status yes you will have to deal with
some code some configuration setup but
the nice part is all this runs from the
command line agent
and use still have the same project
interface you still have the same
reporting the same monitoring you can do
this all offline
agents so if i click agents i can see
the different types of agents that are
running so right now i have an apple
agent
ready
and if i had like any disconnected
agents which i don't
it's interesting too because if i hover
over agent it tells you they have agents
for windows linux mac and docker
so again if you are running multiple
docker instances and you want to test
your products across different say
operating systems linux you can do all
that within docker
you can set up physical machines with
different agents all that can be set up
here
integrations so i again i'm not going to
get into mobile and i'm also not going
to get into too much of the command line
integrations or sdks today but they do
have a plethora of developer tools that
you can use
you can interface it through the api
there are web hooks cloud extensions
they have get integration as well q test
and additional developer add-on
speaking of add-ons so if we go here
there are community add-ons test project
add-ons you can actually create your own
add-ons what i like to hear those just
by looking at the community there are
some things that jumped out at me right
away first and foremost pdf actions so
that little utility file i had to write
for my framework to actually be able to
read pdfs interact with pdfs they
already have a plugin here they also
have one for mongodb they also have some
examples for using java i o
using excel so interfacing probably
using poi to interface with excel
documentations android monkey base 64
encoder this guy's useful especially if
you're doing any type of encryption so
they have a lot of
useful add-ons already available and out
of the box
like you can even pick the community oh
you know is there anything for apple
android or web so you can turn these on
and see which ones you want to find
and i'm not going to get too deep into
those today
all right so let's go out here and build
our first test so let's click new test
and we have some options we can do it by
code web or mobile so today we're going
to focus all on web
so we'll do next
and we'll just give this one a sample
name so test name here i want to hit my
doctor who website so doctor whose stuff
test
test website
flow
more descriptive the better and any tags
you want to put in as well doctor who
prom
wordpress
so on
next all right select the web
application
so we're going to do doctor who's stuff
now if you do not have your application
here already you can add another one so
let me back up for just a second here
close this
go back over here to applications
and let me delete the one i have so
let's do this cleanly
all right so new test again
web
next
doctor who
want to test the doctor who page
functionality and we'll just give it one
tag for now
wordpress wordpress
all right hit next
all right so now we want to select our
web applications well we currently don't
have it so we need to add a new one so
you add new you give it a name
and then you give it your url
and then you click done
then you select the application you want
hit next
now this is
interesting so we can record
or we can edit an existing test so for
now we're going to do a record
and here's what's really cool so with
version 2.0 we can also now save or
record directly to file so we can record
this and save it directly to our file
system
if we do that we then can upload it into
our interface when we're done
but for now we'll keep it simple we'll
do cloud
if you forget you can click the little
information icon here and it gives you a
quick overview of the difference between
the two so the file saves the test as a
yaml file on your machine with no
footprint
but if you can still upload it to the
cloud to get the full beauty access to
it
alright so we have cloud record start
recording
now if you remember the old selenium ide
tool
when you open up selenium ide it will
open up ask you for your url you want to
start with and then it starts the
browser and you have the recorder on the
side
same thing happens here so here we have
our test project recorder
and we have our website
if for some reason the recorder gets in
your way you can minimize it so you can
actually navigate through your website
so if i click latest news
there we go and i re-click the test
project to bring up the step so it
actually recorded my step
so we're going to give it the name click
which is the action
latest news which is the text of the
link i clicked link
it's going to have an action which is
click
and we click the element latest views
but because i do not have an id
this is a wordpress so it's generated it
had to use the xpath
now we can also look at some other
advanced options here so we can actually
add some criteria you know what to do if
the test fails so this is where some of
that self healing and ai components come
in so we can actually set it up to
handle different configurations
different things that happen if it fails
you know what do we want to take a
screenshot
so
you can blanketly set this up to default
to do something every time or you can
custom configure each step as to how
it's going to be handled when a test
step fails so that's kind of cool
some other things that are here within
the recorder you can go to parameters
so here you can pre-record a couple
different parameters if you have test
data you want to populate
you can look up a locator so you can go
css locator
you can do xpath tag name link text
partial link
same with selenium so this is pretty
much all the selenium logic pre-built
so like if i do
say link name and we'll say the value
what's the name of the one i click
latest
so we'll do the latest
and evaluate
and it looks within the page to see if
it can find what you're looking for
and if you can't find it you can click
highlight it will find it for you
as you move through your application you
see this little box pops up this is kind
of cool so i can click
the three dots when i'm on an element i
can check out the actions so
test project
works with angular so it handles the
drag and drop it will also clear
contents for you
and clear contents if visible
we can call the clear element key
we can click it we can click until gone
so all the different selenium actions
are available for this element
validations we also have all the
selenium validations as well does it
contain text is it clickable is it not
present is it present
is selected is visible
attributes again here's the interesting
part so if i hover over attributes for
this element it gives me the xpath it
gives me the text the tag name class
and item property
all these things that
typically when you're doing web-based
testing you have to go open up the the
developer console you have to go look at
the actual code you don't have to do
that anymore not unless you absolutely
want to
if you just want to record a quick test
this is an easy way to do it very clean
very easy and we can save the element if
we need it
the other thing too we have this little
hierarchy button here i can click that
and it gives me all the components
to get to this so if i want to
walk the chain i can go to the div and
it takes me to the top of the page and
then i can walk back down
you