{"id":730,"date":"2020-04-28T10:13:27","date_gmt":"2020-04-28T00:13:27","guid":{"rendered":"http:\/\/clickworks.me\/?p=730"},"modified":"2020-06-03T21:04:38","modified_gmt":"2020-06-03T11:04:38","slug":"testing-internship-update-selenium-python-tests-ec2-instance-and-jenkins-api-testing-plans-for-the-next-3-months","status":"publish","type":"post","link":"https:\/\/clickworks.me\/index.php\/2020\/04\/28\/testing-internship-update-selenium-python-tests-ec2-instance-and-jenkins-api-testing-plans-for-the-next-3-months\/","title":{"rendered":"Testing Internship Update,\u00a0 Selenium Python Tests, EC2 instance and Jenkins, API Testing, Plans for the Next 3 Months"},"content":{"rendered":"<p>Reflecting\u00a0 on what I learned about test automation, how much testing I did in\u00a0 March 2020 and my further plans.<span data-preserver-spaces=\"true\">\u00a0<\/span><\/p>\n<h1><span data-preserver-spaces=\"true\">Testing Internship Update and Thoughts on My Progress<\/span><\/h1>\n<p>It&#8217;s been a while since I wrote my last blog post in January 2020. It&#8217;s been extremely difficult to find time for writing. I tried to spend as much time as possible practising Python and learning new TAU tools. I also must admit that I am not always as productive as I would want, especially in times when I stuck trying to get my scripts working. Anyways, I have some things to share and I have a few small achievements such as<\/p>\n<ul>\n<li><span data-preserver-spaces=\"true\">&#8211; my progress in Selenium Python tests<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">&#8211; starting Jenkins online course<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">\u00a0&#8211; finishing Unix for MacOS users online course<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">&#8211; first training session on API testing<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">&#8211; updated <a href=\"https:\/\/www.linkedin.com\/in\/maksimzinovevau\/\">LinkedIn page<\/a> and <a href=\"http:\/\/clickworks.me\/index.php\/about-me\/\">resume<\/a><\/span><\/li>\n<\/ul>\n<h1>\u00a0<\/h1>\n<h1><span data-preserver-spaces=\"true\">Learning Python and pytest<\/span><\/h1>\n<p><span data-preserver-spaces=\"true\">Well, I spent quite a large portion of the time I allocated for testing in favour of Python practice. I managed to complete around 40 automated tests. Not many, I know. However, I feel quite proud because I got them more or less stable (I know now, it&#8217;s a never-ending story). I also applied some important tools and strategies such as Page Object Model, pytest fixtures, parametrization. I genuinely tried to make my tests meaningful, maintainable and stable. Along the way, I practised working in Unix shell and using Git and GitHub. I must say that I am starting to pick it I and feel more confident now.\u00a0<\/span><\/p>\n<p><span data-preserver-spaces=\"true\">\u00a0<\/span><\/p>\n<h1><span data-preserver-spaces=\"true\">Selenium Python Tests, EC2 instance and Jenkins<\/span><\/h1>\n<p><span data-preserver-spaces=\"true\">That&#8217;s been in my Trello tasks for a long time and it looked quite scary thing to do because I knew very little about AWS EC2 and Jenkins. Yet, I got it working now. My Selenium tests are running on remote machine once a day. Pretty cool, to see how you automated your automated tests. AWS registration and launching an EC2 instance was the easiest part. Fortunately one of my friends and mentors who has 15+ years experience in testing helped me with setting up Jenkins. The last piece of work &#8211; tweaking scripts so that they can be run headless and passwords in my test are not exposed &#8211; I figured that out on my own (thank you, Google and StackOverflow).\u00a0<\/span><\/p>\n<h1>\u00a0<\/h1>\n<h1><span data-preserver-spaces=\"true\">Unix for MacOS users<\/span><\/h1>\n<p><span data-preserver-spaces=\"true\">I must admit, that was a really enjoyable and helpful course.\u00a0 First of all because before starting it, it was difficult to understand and use solutions that I found in articles and StackOverflow. If you are a beginner like me, find a good resource and learn Unix\/Linux shell basics. Looking back to what I learned so far, I can list some topics which I found most helpful:<\/span><\/p>\n<ul>\n<li><span data-preserver-spaces=\"true\">&#8211; moving around filesystem<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">&#8211; searching files and directories<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">&#8211; ownership and permissions<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">&#8211; command basics<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">&#8211; environment variables<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">&#8211; text file helpers<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">&#8211; command aliases<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">&#8211; configuring working environment<\/span><\/li>\n<\/ul>\n<p><span data-preserver-spaces=\"true\">I tried different tools and approaches but nothing really worked for me. At some point, I started to save my notes in a simple markdown file on each course that I&#8217;ve done. I am planning to upload them on GitHub in the public repo so that I always have my notes at hand. You can find the link on my <a href=\"http:\/\/clickworks.me\/index.php\/resourses\/\">Resources<\/a> page. Feel free to visit my profile: <a href=\"https:\/\/github.com\/MaksimZinovev\">GitHub.\u00a0<\/a><\/span><\/p>\n<h1>\u00a0<\/h1>\n<h1><span data-preserver-spaces=\"true\">Note Taking in Markdown<\/span><\/h1>\n<p><span data-preserver-spaces=\"true\">\u00a0I finally found a way to keep notes and organise them in a way that suits me. Here is my solution: Typora + markdown files + GitHub.<\/span><\/p>\n<p><span data-preserver-spaces=\"true\"><a href=\"https:\/\/typora.io\/\">Typora<\/a> is a great markdown editor with super clean UI and autogenerated table of contents for your markdown file. Once I created the file I usually put it in a separate folder in my git repositories and create an alias for quick access. I also use this approach for general note-taking. For example, when I\u00a0 tried to set up Jenkins on EC2 instance \u00a0and run my Python scripts for the first time I listed main steps and saved all commands in .md file. Now I can review them any time and from any place. Sweet.<\/span><\/p>\n<h1>\u00a0<\/h1>\n<h1><span data-preserver-spaces=\"true\">API Testing Training Session<\/span><\/h1>\n<p><span data-preserver-spaces=\"true\">If you read my previous posts you know that I was doing an Internship at Aerofiler as manual testing since July-August 2019. In March they kindly offered me to have a training session on REST API testing. They use <a href=\"https:\/\/taverntesting.github.io\/\">Tavern<\/a> as their integration testing framework. That was both very exciting and a little bit scary because API testing has always seemed like advanced area in testing, something too complicated for me which requires good coding skills&#8230; Well, by the time I am writing this blog post I changed my opinion. I grasped the basics of Selenium and Python and I am pretty sure I can learn API testing as well. At least I will be able to write basic tests, that&#8217;s for sure. And as always, the more you practice the more confident you feel, no matter what you are learning.\u00a0<\/span><\/p>\n<p><span data-preserver-spaces=\"true\">So, <a href=\"https:\/\/taverntesting.github.io\/\">Tavern<\/a> uses pytest tests and the tests are written in Yaml. Very strong combination, because pytest is a very popular and mature framework and Yaml&#8217;s syntaxis allows you to write very concise and clean tests, organise them in an easy to read and write structures.\u00a0<\/span><\/p>\n<p><span data-preserver-spaces=\"true\">It was hard in the beginning. I started to read tavern docs and tried to write short examples using different public APIs. And as I move forward it becomes a little bit easier. I guess at some point I will be able to write real API tests. Pretty exciting.<\/span><\/p>\n<h1>\u00a0<\/h1>\n<h1><span data-preserver-spaces=\"true\">Job Search and Plans for the Next 3 Months<\/span><\/h1>\n<p><span data-preserver-spaces=\"true\">I share my progress with one of my friends, an experienced tester who often helps me with and advice and mentors me. And he told me a couple of times that I should start applying for testing positions. I that way I will learn faster because currently, I do testing only one full day (Monday) and a few hours on the weekend. The problem is that it seems to me that I am not ready for a real job. I am afraid, with this mindset I might never find a job. It&#8217;s been almost a year since I decided to shift my career int testing. So I guess, I need to keep moving towards the next logical steps and do not allow myself stuck in one place.\u00a0<\/span><\/p>\n<p><span data-preserver-spaces=\"true\">What would be a good plan for the next 3 months for me? It depends on what&#8217;s the goal. &#8211; Find an entry-level testing position. What do I need to do reach that goal?<\/span><\/p>\n<ul>\n<li><span data-preserver-spaces=\"true\">&#8211; Make a plan to organise and schedule my work effectively.<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">&#8211; Keep learning test automation and doing my internship.<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">&#8211; Every 1-2 weeks allocate some time for job search (during that time, it is important to put away all other tasks):<\/span>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li class=\"ql-indent-1\"><span data-preserver-spaces=\"true\">\u00a0&#8211; applying for entry-level positions<\/span><\/li>\n<li class=\"ql-indent-1\"><span data-preserver-spaces=\"true\">&#8211; working on a resume and cover letter<\/span><\/li>\n<li class=\"ql-indent-1\"><span data-preserver-spaces=\"true\">&#8211; preparing for an interview<\/span><\/li>\n<li class=\"ql-indent-1\"><span data-preserver-spaces=\"true\">&#8211; maintaining GitHub, Twitter, LinkedIn, page, website<\/span><\/li>\n<li class=\"ql-indent-1\"><span data-preserver-spaces=\"true\">&#8211; networking<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><span data-preserver-spaces=\"true\">&#8211; Track my progress<\/span><\/li>\n<\/ul>\n<p><span data-preserver-spaces=\"true\">Here is what I ended up with, my weekly schedule:<\/span><\/p>\n<p><span data-preserver-spaces=\"true\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-large wp-image-765\" src=\"http:\/\/clickworks.me\/wp-content\/uploads\/2020\/04\/Weekly-Schedule-1024x532.png\" alt=\"Weekly Schedule\" width=\"640\" height=\"333\" srcset=\"https:\/\/clickworks.me\/wp-content\/uploads\/2020\/04\/Weekly-Schedule-1024x532.png 1024w, https:\/\/clickworks.me\/wp-content\/uploads\/2020\/04\/Weekly-Schedule-300x156.png 300w, https:\/\/clickworks.me\/wp-content\/uploads\/2020\/04\/Weekly-Schedule-768x399.png 768w, https:\/\/clickworks.me\/wp-content\/uploads\/2020\/04\/Weekly-Schedule.png 1032w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/>\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Reflecting\u00a0 on what I learned about test automation, how much testing I did in\u00a0 March 2020 and my further plans.\u00a0 Testing Internship Update and Thoughts on My Progress It&#8217;s been a while since I wrote my last blog post in January 2020. It&#8217;s been extremely difficult to find time for writing. I tried to spend as much time as possible practising Python and learning new TAU tools. I also must<\/p>\n<div class=\"read-more\"><a class=\"btn read-more-btn\" href=\"https:\/\/clickworks.me\/index.php\/2020\/04\/28\/testing-internship-update-selenium-python-tests-ec2-instance-and-jenkins-api-testing-plans-for-the-next-3-months\/\">Read More<\/a><\/div>\n","protected":false},"author":1,"featured_media":732,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[30],"tags":[58,32,59,49,60,41,45],"post_folder":[],"_links":{"self":[{"href":"https:\/\/clickworks.me\/index.php\/wp-json\/wp\/v2\/posts\/730"}],"collection":[{"href":"https:\/\/clickworks.me\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/clickworks.me\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/clickworks.me\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/clickworks.me\/index.php\/wp-json\/wp\/v2\/comments?post=730"}],"version-history":[{"count":8,"href":"https:\/\/clickworks.me\/index.php\/wp-json\/wp\/v2\/posts\/730\/revisions"}],"predecessor-version":[{"id":766,"href":"https:\/\/clickworks.me\/index.php\/wp-json\/wp\/v2\/posts\/730\/revisions\/766"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/clickworks.me\/index.php\/wp-json\/wp\/v2\/media\/732"}],"wp:attachment":[{"href":"https:\/\/clickworks.me\/index.php\/wp-json\/wp\/v2\/media?parent=730"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/clickworks.me\/index.php\/wp-json\/wp\/v2\/categories?post=730"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/clickworks.me\/index.php\/wp-json\/wp\/v2\/tags?post=730"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/clickworks.me\/index.php\/wp-json\/wp\/v2\/post_folder?post=730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}