Earlier this year I started working on a new video course, Selenium WebDriver Basics for Java. After a couple of months delay, I have been able to start working on it again. The following are samples from the Getting Started section.
Installing the Java JDK
Installing the Eclipse IDE
Installing Selenium WebDriver and the Browser Drivers
Over the past few years, I have had the pleasure of working with multiple teams with each practicing their own flavor of Agile. This has given me the opportunity to see how processes grow and evolve based on the goals, strengths, and challenges faced by the teams. I have also been able to witness and gain insight into some of the confusion and mystery surrounding the Agile Methodology. For those who are just starting out on this path or those that are seeking a little more clarity, I offer you these three steps to help you on your way.
1. RTFM – Read The Famous Manifesto
Take the time to read The Agile Manifesto including the Twelve Principles of Agile Software. Despite how much has been written about Agile, the manifesto is quite short and easy to follow. By reading the words yourself, you will build your own understanding of them. It is that understanding that will help guide you to success as you discuss and evolve processes and methods with your team.
2. Confirm Team Alignment
Agile is not just for developers. It is for the whole team which includes developers, testers, product owners, facilitators, and stakeholders/customers. With that many roles involved, it should be obvious as to why you need to make sure everyone has clear expectations of their responsibilities and the ultimate goal of the team.
You may note that I said “roles” rather than “people” when describing the members of the team. That is because a single person may perform multiple roles on a team. For example a stakeholder may choose to also be the product owner or the lead developer may also be the facilitator for the team. No matter how many people the team has, alignment on duties and expectations is essential.
The Product Team:
- Stakeholder: Provides input about the product. May also have financial responsibilities to the team and/or product.
- Product Owner: Defines and prioritizes the project stories and tasks.
- Facilitator: Runs meetings, removes obstacles, and shelters the team from interruptions.
- Developer: Plans and writes code for a software project.
- Tester: Confirms the application functions as expected.
As part of the team alignment, it should be agreed that no one member should act unilaterally because this hinders communication and will effect the project. While each member has ownership of an aspect of the project, they should make decisions based on information gathered from both their experience and that of their teammates. Product owners are responsible for what is being worked on but they should not dictate the completion dates. Developers control the frameworks, tools, and technologies used in the product but they should consider the advise from the testers to make it easier to catch bugs.
Communication and consideration are key to building team alignment.
3. Find What Works For Your Team
Agile is not a destination. Nor is it a single skill, practice, or process. No one can provide you with a checklist or script that will transform any team or product into an Agile one. The reason for this is every team and situation is unique and as such requires an equally unique solution.
This isn’t to say that there isn’t value reading about what other teams have done. Developing a unique solution doesn’t mean you have to build everything from scratch. In fact, it’s probably better for teams to adopt some practices they learn from articles, books, or an Agile Coach when they are starting out. This will provide the team with a chance to avoid some of the pitfalls and get a jump on their progress.
The key is to not get hung up on “the right way” or “requirements” of being Agile. If your team has found that part of the process isn’t helping to achieve the end goal, get rid of it. Teams should be allowed to determine the best way for them to function. So long as they continue to communicate with each other (including stakeholders, customers, etc), are able to adapt to change, and deliver working software on a regular basis then the team is successfully implementing Agile.
Given my experience with creating automated regression tests, one would think that I’d remember the dangers of improperly planned data. Unfortunately, I am susceptible to getting wrapped up in how the function works and getting to an initial success and sometimes forget to see if the feature works differently if the data varies. While I take comfort in not being alone in making this mistake, I still regret not seeing it coming sooner.
With any automation, developers should always prepare a plan for providing reliable and predictable data. Without that data, the automation will become “flaky” and produce undependable results. As an example, I was recently running a performance test that we’ve been working with for a few weeks and has been running smoothly. We decided it was time to start ramping up the load and expanded the product data available. Unfortunately, we did realize that the new products had a setting that caused them to trigger a different process flow. The result was that our tests began failing and because the data was being selected at random, we couldn’t determine if we had hit a product limitation or an issue in the test. We lost several hours to debugging this situation.
An important lesson I have learned through this and similar experiences is that automation requires a data strategy that takes into account how the tests will be run and what their purpose is. In the case mentioned above, the solution is to generate a controlled set of products that will result in a predictable path through the software. We will also need to regulate any changes to the data load or develop an automated system to produce the desired entries in the required state before the test runs. It may sound obvious but it really is more complicated than you might think.
At least now I know what one of my future articles will be about, developing a data strategy.
Welcome to Chainmail 101.5. This workshop will cover the basic techniques of mail production including:
Essential Tools for making Chainmail
- Turning wire into rings
- Knitting Steel
- The 4 in 1 pattern
- The 6 in 1 pattern
- The 8 in 1 pattern
We will also cover these additional advanced topics:
- Constructing a Wire Crank
- Creating a Coif
Essential Tools and Materials for Making Chainmail:
The tools required for making chainmail are simple and easy to obtain. They also depend on whether you are making the rings or purchasing them. Personally, I prefer to make my own rings. This gives you satisfaction of saying “I made this from scratch!” and it is more cost effective. A ¼ mile of 14 gauge Galvanized Steel wire cost about $15 at Farm & Fleet and will produce at least 20 lbs of rings (I haven’t actually weighed the spool so I’m estimating from heft) whereas a 5 lb bag of rings usually runs for about $15-$20 on Ebay. This list below are the required tools and materials for working from scratch.
- 14-16 Gauge Wire (I recommend 14 gauge as it is more durable)
- Wire Spinning Crank
- Clippers (Tin Snips, Heavy Duty Wire Cutters, or equivalent)
- 2 Pairs of pliers (Pick your favorite type)
- 3 Containers to put your rings in (Open, Closed, Unprocessed)
Turning Wire into Rings:
The process of winding rings can be the most tedious part of mail making, but it is also the most important (without rings you won’t get very far on your project!). The first thing you must decide is what size rings you will produce. The most common and versatile size is 3/8”, but I have also seen people use ¼” and 5/16”. This decision affects the construction of the wire spinning device (see appendix A)
The next step is to make a spring, insert the wire in the retaining hole and slowly turn the crank. The wire should wind along the spindle as close to the previous coil as possible. If you go to fast, you might get an overlap which will cause you to lose rings when you cut them. When the spindle is full, clip the wire, or pull the end out of the hole, and slide your spring off.
Now that you have a spring the real fun starts. Pick an end of the spring to start on and start clipping. The first cut will usually be to snip off excess wire, but from that point on you should start seeing good rings. Clip straight up the coil for best results. You should get about 100 rings out of a 10” spring.
Now you have a pile of unprocessed rings and it is time to sort them out and process them. How you sort the rings depends on your style of mail making. I usually sort them into two piles with 2 rings to be closed for every 1 open. To make closed rings, hold the ring in one pair of pliers and use the other to twist the ends until they meet. To make open rings, twist the rings to be so that the ends are about 2 wire widths apart (depending on how tight your coil was some rings may already be “open”).
You have now successfully created the building blocks for your Chainmail project.
There are a number of patterns that can be used for producing chainmail, or knitting steel. Some patterns are very complex and most often used for jewelry making. In this workshop, we will stick to the “functional” patterns that are used for armor. The patterns are referred to by the number of rings linked through an given link: 4 in 1, 6 in 1, or 8 in 1. You choose the pattern based on the ring size and the density of the finished product. Since we are using 3/8” rings any of the patterns can be used. The most common pattern is 4 in 1, which is quick to produce and provides a loose but effective weave. I use this weave for making ceremonial chainmail items. For armor grade I use 6 in 1, but that is my personal preference 4 in 1 is sufficient for heavy list. Examples of the different weaves are shown below.
The 4 in 1 Pattern:
Steps for constructing 4 in 1 Chainmail strip:
- Place 4 closed rings on 1 open ring and then close it
- Add two closed rings to an open and then loop the open ring through 2 of rings in the previous set
- Repeat step 2 until you have a strip of the desired length
- Repeat steps 1-3 until you have created the desired number of strips
- Connect the strips together by weaving open links through four links, 2 from each strip.
The 6 in 1 Pattern:
Steps for constructing 6 in 1 Chainmail strip:
- Place 4 closed rings on 1 open ring and then close it
- Add two closed rings to an open and then loop the open ring through 4 of rings in the previous set
- Repeat step 2 until you have a strip of the desired length
- Repeat steps 1-3 until you have created the desired number of strips
- Connect the strips together by weaving open links through 6 links, 3 from each strip.
- Match any additional rings needed, ie., a ring through the first 4
The 8 in 1 pattern:
Steps for constructing 8 in 1 Chainmail strip:
- Place 4 closed rings on 1 open ring and then close it
- Add two closed rings to an open and then loop the open ring through 4 of rings in the previous set
- Add two closed rings to an open and then loop the open ring through 6 of rings in the previous set
- Repeat step 3 until you have a strip of the desired length
- Repeat steps 1-4 until you have created the desired number of strips
- Connect the strips together by weaving open links through 8 links, 4 from each strip.
- Match any additional rings needed, ie., a ring through the first four and then through the first 6
Adding Single Rows:
Adding a single row of mail to an existing strip is accomplished by weaving open rings through the bottom row of the strip using the technique described for connecting strips
Adding Double Rows:
To add double rows, you need to start with 2 closed rings on one open ring. Connect the open link through the first 2 links in the strip. From this point on, add one closed link to the open and then connect it through the appropriate number of rings on the strip and in front of it. Eg., for 4 in1 the open link should have 1 closed link and then attach to 2 rings from the strip and 1 ring from the previous addition. For 6 in 1, it would have 1 closed and attach to 3 from the strip and two from the previous addition.
Appendix A: Constructing a Wire Crank
The wire crank is an essential tool used to convert wire into springs or coils. The springs are then cut to form the individual rings used to produce chainmail.
Building a Period-style Wire Crank:
The materials used to construct a crank are as follows:
· 2 1’ pieces of 2×4
· 1 2’ x 8” piece of plywood (or equivalent)
· 1 2’ piece of 3/8” dowel (or whatever size you want your rings to be)
· 1 6” piece of a 1” dowel
· 1 6” 1×2
· A drill
· 4 Drill bits (7/16”, 3/8”, 1”, and 5/64” or 3/32”)
· 4 2” wood screws
· Tack hammer
· 2 2” nails (small gauge)
· 2 Carter Pins
1. Drill a hole in the center of the 2x4s about 1” from the top using the 7/16” bit. This hole will be large enough for the dowel to slide through an rotate smoothly.
2. Attach the 2x4s to the plywood using the wood screws. I recommend attaching them centered and about 1” in from the edge.
3. Drill two holes, 1” and 3/8”, in the 1×2, one at each end.
4. Push the 1” dowel into the 1” hole and secure with a nail through the end of the 1×2.
5. Attach the handle you just made to the 3/8” dowel in the same manner.
6. When everything is dry, slide the crank through the holes in the 2x4s. position the crank so that there is about a 1”space between the handle and first 2×4.
7. You will now need to mark three points on the 3/8” dowel. The first 2 will be for restraining clips to prevent the crank from sliding out prematurely. The marks should be made on the outside of the 2x4s. The third point should be about ½” in from the 2×4 farthest from the handle. The third point will be the hole to secure the wire.
8. Remove the crank from the jig.
9. Using the smaller bit, drill holes in the crank at the points you have marked.
10. Place a carter pin in the hole closest to the crank handle and place the crank back into the jig
11. Push the remaining carter pin into the hole on the other end of the crank.
12. You are now ready to use the crank to produce springs.
A Modern Wire Crank:
A much faster crank can be made from a variable speed drill and a 3/8” dowel. I do not recommend using a dowel over 1′ in length as it will be unwieldly. The first thing you need to do is to drill a hole through the dowel large enough to insert the wire. Once this is done, insert the dowel in the drill and tighten it down. You are now ready to produce your springs (Aren’t modern conveniences wonderful!)
I have also heard tell of someone using a metal lathe with a custom feeder jig for the wire, but I don’t know too many people who have one of these laying around their house.
Appendix B: Making a Chainmail Coif
The following instructions can be modified to construct a more form fitting coif. If followed exactly, they will produce one with the same dimensions as mine, ie it will fit my head quite well. The measurement I used to determine how many rings I needed to fit around my head was 24”. This is measured just above your eyebrows and all the way around.
1. Link 12 rings on a single center ring and lay flat.
2. Attach 12 rings by connecting 1 open ring through 2 closed such that the added rings will overlap the previous by 1 ring.
3. Repeat step 2
4. Repeat step 2 and then add another ring to every second ring in the previous level. The expansion rings should only connect to one closed ring. This will expand the ring count to 18
5. Using the same method as in step 2, add 18 rings
6. Repeat Step 5 again and then add expansion rings every second ring. You will now have a base of 27
7. Add 27 rings and then add expansion rings every 3rd ring. The level will now be expanded to 36
8. Add 36 rings
9. Repeat step 8 and then add expansion rings every 2nd ring. You will now have a base of 54 rings.
10. Add 54 rings as the next level.
11. Repeat step 10 until the caplet created ends just above your eyebrows.
12. Count the number of rings that hang above your face. This number will be used to determine how long of a strip you will need to add to go around the back of your head; Subtract the number from 54 to get the number of rings required. Most likely this will be around 16 rings.
13. Construct enough strips of chainmail of the appropriate length (38 rings) to reach from the base of your caplet to the base of your neck.
14. To construct the mantle, assemble 2 strips of mail 60 rings long and connect them.
15. Add expansion rings to the bottom row every 3rd ring, this will bring you to 80 rings
16. Assemble 2 more strips of mail 80 rings in length and connect them
17. Add expansion rings to the last row every 4th ring, to bring the total to 100 rings
18. Add 2 more strips of mail 100 rings in length.
A stereotype, as defined by Webster’s New World Dictionary, is “a fixed or conventional notion or conception” (Agnes, 2003). In other words, it is a generalized idea about something or someone. The most prevalent stereotypes in modern society are those regarding people. These concepts attribute qualities to members of various groups based on race, ethnicity, economic status, education, age, and many other factors. Being highly generalized, stereotypes are often incorrect when compared to a specific individual, but there are also cases where a person is the embodiment of such generalizations.
Each of these stereotypes also carries with it social implications, which separate those to whom the stereotypes are applied from other people who are not of that group. This separation can manifest as a result of either the group’s desire to exclude non-members or the expulsion of the group as undesirable. While the former example is often referred to as “snobbery” and draws upon the application of positive attributes to the members of the group, the latter—stigmatization—causes the greatest duress for individuals. Being the victim of a social stigma can be devastating psychologically and physically. The physical damage may come from attacks by others or from the stigmatized person’s self-loathing (suicide, cutting, extreme dieting, body modification, etc.). Regardless of the form or source of the harm, the damage done can be irreversible.
The Power of Stereotypes
There are many common stereotypes within the United States—the politician, the country bumpkin, the city slicker, and the geek to name a few—but most of these are harmless enough if a person has a good sense of humor and/or thick skin. There is another stereotype, however, that has seized the minds of Americans in recent years and driven some to commit hateful acts in the guise of patriotism: the Muslim terrorist. Under this concept, any proclaimed Muslim must be part of or aware of a plot to assault citizens of the United States. This stereotype is also applied to anyone who appears to be Middle Eastern or wears clothes reminiscent of that culture.
In the wake of the September 11, 2001 attack on the World Trade Center, American Muslims and citizens of Middle Eastern decent have been harassed, slandered, and physically attacked based on little more than their religious beliefs or their appearance. As seen in a 2009 article, American Muslims suffer insults and fear reprise for acts they did not commit (Associated Press, 2009). In May of 2010, Muslim artwork—created as a commentary about the increase of hate crimes against Muslims—was defaced while on display at the School of the Art Institute in Chicago (Lasagni, 2010). While it is unclear why the artwork was vandalized, it is suspected to be due to the animosity of many Americans towards Muslims. The reason for such hatred can only be explained by a deep-seated belief in the Muslim terrorist stereotype.
The Perpetuation of Stereotypes
The answer to where stereotypes come from and how they persist in the world can be disturbing. The generalizations about people are often created through ignorance of their culture and a need to categorize them. These ideas become fixed when people increasingly see and hear the descriptions from places they trust for information—such as the news, respected officials, and parents.
The media have long been known for providing information in such a way as to have the greatest impact. This is best accomplished through appealing to emotions rather than critical thought. The unfortunate result of appealing to emotions is the removal of understanding, and the acceptance that all individuals can be defined by their grouping. The same concept applies when dealing with respected officials. A leader can easily control a community that does not question or analyze information, which is the result when they are swayed purely by emotion.
While it is easy to blame others for instilling incorrect information in the nation’s youth, parents have often done the most damage. In some cases, the parents subscribe to the stereotypes themselves and foster their belief. Other parents commit a far greater disservice by not taking action to encourage their children to question the stereotypes and to see people for who they are rather for what someone else says they are.
Education, Acceptance, and Understanding
It is possible to combat stereotypes and to reduce them to mere footnotes in history, but this is a very daunting task. The road to understanding requires educating everyone about the flaws in generalizations. The acceptance of this idea can lead people to make an effort to fight their preconceived notions as well as remind them that every individual is unique. Stereotypes can only be disproven using critical thought and analysis, which is something people must do for themselves. In this respect, there is great wisdom in the song “Closer to the Heart”, which offers this statement: “Philosophers and ploughmen / each must know his part / to sow a new mentality / closer to the heart.” (Peart & Talbot, 1977).
Rush: Closer to the Heart
Agnes, M. (Ed.). (2003). Webster’s New World Dictionary (Fourth ed.). New York: Pocket Books.
Associated Press. (2009, September 11). For Muslims, backlash fear builds each 9/11. Retrieved June 15, 2010, from MSNBC: http://www.msnbc.msn.com/id/32782444/
Lasagni, G. (2010, May 13). Attack on Muslim artwork at School of Art Institute called a hate crime. Retrieved June 14, 2010, from Medill Reports Chicago: http://news.medill.northwestern.edu/chicago/news.aspx?id=164662
Peart, N., & Talbot, P. (Composers). (1977). Closer to the Heart. On A Farewell to Kings. South Wales, United Kingdom.
The kindest thing an archer can do for his bow is to use a bow stringer. Aside from making it easier to string the bow, the stringer allows for applying even pressure on the limbs during stringing so there is less chance of breaking or damaging the bow. This article will explain how to make a stringer that will work on most bows. The stringer is made up of three parts, the pocket, the saddle, and the cord. The function of each part is explained at the end of the article.
To make a simple stringer you will need the following:
· a length of cord 7-8’ long ( I use 8’)
· a scrap of leather or suede at least 5 inches square
· a hole punch
· a rivet (not a pop-rivet) or heavy waxed thread and needle
You will need to punch holes in the ¼” from each of the sides of the saddle. The holes should be large enough to fit your cord through. The number holes required for the “T” depends on whether you use a rivet or thread. If using thread, you will only need one hole, large enough for the cord to pass through twice, punched ¼” from the bottom of the “T”. The diagram shows the single hole and the approximate holes for the rivet.
To make the pocket you will need to fold the top of the “T” over twice and then fold the flaps under so the overlap. You will then secure the bottom three layers; the two flaps and “T” body. You should now have a pocket with a loop above it (see diagram).You can now run your cord and complete the stringer
Start running the cord into the “T” with the pocket on top. The cord should pass through the hole from the top; then through the loop (pictured on the left above), and then back through the hole from the bottom. Once the cord is run, secure the strand together with a knot. The saddle is strung by running the cord up through the first hole, down through the second, and securing the cord together with a knot that will not slip. You should leave some room in the loop so it will slip over the bow without too much trouble.
You now have a bow stringer, but do you know how to use it? If not read on and I will offer a quick lesson in stringing your bow. Hold the bow so the string hangs beneath it and slip the pocket of the stringer over the end that already has the string in place. Now slip the saddle over the other end and position it just behind the other loop in the bowstring. Place your foot on the stringer cord and pull up on the handle of the bow; the bow will bend into shape. While holding it in position, slip the loose loop down into position. Your bow is now strung. You should verify that both ends of the string are seated correctly before drawing the bow.
Finding something to do at an event when you’re too young to take part in many activities can be difficult. In this class, we will learn some games that are easy and appropriate for events. This isn’t as difficult as you might expect, in fact you may already know several of the games. Here is the list:
- Hoodsman’s (Blind Man’s) Bluff / Jingling
- Barley Break
- How Many Miles to London?
Hopscotch dates back to the Roman occupation of Britain. The first thing to be done is to draw a course, several common court styles are seen below.
Each player then chooses a marker, usually a stone. Play begins with the first player tossing his stone into the first space. If the stone lands completely within the designated square, the player proceeds to hop through the course. A player can only have one foot in any given square, so single squares must be balanced and double squares (side by side) are straddled. While hopping, the player should alternate the foot he lands on for each square. Any space not marked with a number, ie London, Home, etc., are considered rest squares and can be landed in any fashion.
When the player reaches the top of the court, he then turns around and comes back, collecting his marker along the way. Play then continues with the player tossing his marker into the second square and so on.
If a player fails to toss his marker into the correct square or if it touches a line the players turn ends. The same is true if the player steps on a line, misses a square, or loses his balance and falls.
The first player to complete the course for each numbered square wins.
Hoodsman’s Blind / Jingling:
Hoodsman’s Blind is known today as Blind Man’s Bluff. The person who is “It” is blindfolded or hooded and must try to catch any player that ventures too close. The other players see how close they can get to “It” without getting caught. The last person caught is “It” for the next game.
Jingling is the reverse of Hoodsman’s Bluff. All of the players are blindfolded except “It”. “It” is given a string of bells and the players must try to catch him. The person who catches “It” is “It” for the next game.
The game starts by marking an area on the ground by drawing a circle or other shape. “It” cannot leave this area. The players must try to run through the area without getting tagged. If a player is tagged, they must join hands with “It” and help to catch the other players. As more players get tagged, they join onto the end of the line. Only those at the ends of the line can tag a player. Those in the middle can however help to “net” the player as they try to run through. The last person caught is “It” for the next game.
How Many Miles to London?:
This game begins with “It” being blindfolded. The other players then stand in a line and ask “It” for directions. “It” tells them how many steps to take forward backward, left, or right they must go. Then “It” is led to the starting point and must follow his own directions. When “It” has reached the final destination, he must try to touch another player. The other players may duck or sway to avoid being touched, but they cannot move their feet. If a player is tagged, then he is the next “It” otherwise “It” must try again.
This game has many names of which I have mentioned three. Each variation has minor adjustments in the rules, but essentially are the same. The equipment required for the game is 1 small white ball (about 1 – 1 ½” in diameter) and 2-4 balls of about 3” diameter for each player. The field is a flat stretch of ground generally 10’ wide by 60’ long (the distance can vary depending on the age and skill of the players).
Play starts by throwing the small white ball known as a “Jack”, “Pallino”, or “Cochonnet”. The ball must land at least halfway up the designated field to be in play. The players then take turns trying to roll their balls closest to the “Jack”. When a player succeeds in getting his ball closest, his turn ends. If a player runs out of balls before getting “Best Ball” then they must wait while the other players attempt to improve their positions.
A player can get “best ball” in several ways. First they can simply roll their ball closest to the jack. He could also use his ball to hit another player’s ball away or one of his own closer. The player can also hit the jack causing it to move away from the other players’ balls.
At the end of each round, the player whose balls are closest gets one point for each ball nearer to the jack than any other players’. Games are usually played until a score of 15 is reached.
I recently saw a post in the Test Automation community on LinkedIn suggesting that we should stop writing custom frameworks. The reasoning behind the suggestion was that it was time consuming to reinvent the wheel when there was an Open Source project, RedwoodHQ, that already had everything you need. Like most of the commenters, my first thought was that I was just reading a sales brochure for another “silver bullet” automation solution. The author, however, insisted that it was a sales pitch since his framework was free and he just wanted to raise awareness of a new tool that is available to the community.
I have long been a proponent of developing one’s own framework to build understanding of the underlying operations. In some ways it’s like Jedi training, you might start out using a lightsaber you were given but you will not become a master until you have constructed your own. In my experience, using pre-existing frameworks can limit an automator’s growth by obscuring the inner workings. Some frameworks will also limit a user’s ability to perform tasks because the developer didn’t consider that use case.
With that in mind, I decided to look at RedwoodHQ and see what it actually is. It wouldn’t be fair of me to write off someone else’s work without at least taking it for a spin. After reading a bit more about it, I downloaded the application and set it up on a VM. The installation process was smooth and I was connected to the web interface and poking around in the sample test in minutes.
For someone with very little knowledge of Selenium WebDriver, they could develop a test with RedwoodHQ right out of the box. They may even be able to begin learning by looking through the action example code. I wouldn’t, however, recommend keeping the original actions in the long term. If for no other reason, they need to be replaced because the current Selenium code uses hard sleeps and possibly relies on implicit waits.
With that said, don’t write off this framework yet. You’ll note that I recommend replacing the actions. This is extremely easy to do using the built-in web IDE and you can drop in any jars you like to use with your tests. This means that if you have built your own framework, you could compile it and reference your own classes and functions within RedwoodHQ. I am currently considering doing just this.
The efforts I have put into my personal framework have been focused on building functions around Selenium WebDriver to make developing page/component objects easier and by extension making the tests easier to write. In this way, I was not limited to using a specific test framework (although I tend to use TestNG most often). I have now realized that unlike other automation tools and solutions, RedwoodHQ operates at the same level as a test and reporting framework and will not interfere with working at the lower levels.
Since this is only an initial review, I can’t speak to how it integrates with a CI environment but I am willing to give this tool a chance. Once I have adapted my Selenium framework to RedwoodHQ, I am considering submitting it as a replacement for the existing actions. I believe the tool would benefit from having actions that utilize explicit waits and provide more than just basic functionality.
The take home from this is that I learned that RedwoodHQ is not another “silver bullet” automation nightmare. It is a test development, management, and reporting framework that won’t limit you to working within their methods. My intial opinion is “Well done!”
Measuring Tape or yard stick
Materials (per wall):
3 – ½” PVC pipes (10’ each)
6 – ½” PVC elbow connectors
4 – ½” PVC Tee connectors
2 – Spring-loaded Clamps (Optional)
3 – clamp lights (Optional)
1 – twin size blanket
- Cut the 10’ PVC pipes into three 3 foot sections and one 1’ section each
- Cut one of the 3’ sections into 1’ pieces.
- Assemble two 6’ upright poles by connecting two 3’ foot pipes with a tee connector for each one.
- Put elbows on either end of a 3’ pipe and set it aside. This will be the top bar.
- Lay the side poles down with the Tees facing each other. Insert a 3’ pole into the tee connectors to serve as a brace. You assembly should now look like an H.
- Now take the top bar and fit it on the top of the poles.
- Place two elbows on each of the remaining 3’ pipes and set them aside
- Make two 2’ pipes using 4 1’ sections and 2 tee connectors
- Assemble a rectangle using the two 2’ pipes and the 3’ pipes with the elbows.
- The final step is place the upright poles into the tee connectors in the center of the 2’ sides of the base.
- Use clamps or lights to attach the blanket to the frame
I hope these instructions are useful and make sense. I am including a picture of one of my frames. This one is a little different than the instructions because I decided to add an extension to the top rather than having a full rectangle for the base.
Be creative and build what you need. I added another pole and a 3-way connector to support the corner and connected the two walls so I could completely enclose the area rather than just having separate screens.