You are on page 1of 8

Summary

Almost 5 years as an Application Security Testing engineer, I have discovered my


independent way to move forward. Domain understanding and familiarization with
business processes are playing vital role in the improvement of my skills. Application
Security Scanning with multiple tools, Application Manual Penetration Testing,
understanding of Application related vulnerabilities, Vulnerabilities Remediation Tips
experienced me a lot.

Manual Penetration Testing has provided me a new vision to lead my life along with my
skills.

Perform penetration testing, Secure Code Analysi and reverse engineering on Mobile
Android Applications
• Provide secure development guidelines to Developers
• Assist organizations with the Secure Development Lifecycle (SDLC)
• Provide mentorship to less senior colleagues
• Manage Multiple Security Audits from start to completion

Successful completion of PCI(Payment Card Industry) Audit helped me a lot during my


career twice. To setup a Web Application free of Critical/High/Medium/Low
vulnerabilities was a great challenge for me.

OWASP top 10 vulnerabilities documentation and discussion.


Hello Karthik, how can i join this session. I wanted to learn selenium and also, live project. Please guide
me!

REPLY

Bader Bari1 month ago

WASTE OF TIME. RUN

REPLY

Poonam Chaturvedi2 years ago

can u explain me system testing with live example


1

REPLY

View reply

Santa Thapa2 years ago

I also join the seminar online

REPLY

Ranganath Vaishnav1 year ago

Hi Sir, I am referring this video to learn Manual testing.

REPLY

View reply

jiya Styen1 year ago

hello sir im fresher and i want learn how to write test cases plz explain me in your next video

REPLY

Ranganath Vaishnav1 year ago

Can I get Requirement document???

REPLY

View reply

 Actions are commands that generally manipulate the state of the


application. They do things like “click this link” and “select that
option”. If an Action fails, or has an error, the execution of the current
test is stopped.
Many Actions can be called with the “AndWait” suffix, e.g.
“clickAndWait”. This suffix tells Selenium that the action will cause the
browser to make a call to the server, and that Selenium should wait
for a new page to load.

 Accessors examine the state of the application and store the results
in variables, e.g. “storeTitle”. They are also used to automatically
generate Assertions.
 Assertions are like Accessors, but they verify that the state of the
application conforms to what is expected. Examples include “make
sure the page title is X” and “verify that this checkbox is checked”.

All Selenium Assertions can be used in 3 modes: “assert”, “verify”, and


” waitFor”. For example, you can “assertText”, “verifyText” and
“waitForText”. When an “assert” fails, the test is aborted. When a
“verify” fails, the test will continue execution, logging the failure. This
allows a single “assert” to ensure that the application is on the correct
page, followed by a bunch of “verify” assertions to test form field
values, labels, etc.

“waitFor” commands wait for some condition to become true (which


can be useful for testing Ajax applications). They will succeed
immediately if the condition is already true. However, they will fail and
halt the test if the condition does not become true within the current
timeout setting (see the setTimeout action below).

Script Syntax

mvn eclipse:eclipse
Then open eclipse. Choose your workspace or create a new one. Once the
Eclipse IDE loads, do the following:

# File -> Import… # General -> Existing Projects into Workspace # Click
next # Next to “Select root Directory:” click “Browse” button # locate the
project folder containing your pom.xml and click ok. # Your project should
appear in the “Projects” box already # click finish
If you haven’t already, install the m2eclipse plugin then right click on your
project and select Maven -> Enable Dependency Management.

Importing Sel2.0 Project into IntelliJ Using Maven


We are currently working on this appendix. The information provided here is
accurate, although it may not be finished.

In this appendix we provide the steps, including screen captures, showing


how to create a Selenium 2.0 java client-driver project in IntelliJ IDEA.
These steps assume you have already used maven with a pom.xml file to set
up the project. This process is described in the Selenium 2.0 chapter. You
must have followed that process before you can perform these steps. This
appendix then shows you how to import the maven-created Selenium 2.0
java project into IntelliJ.

First, open IntelliJ and from the entry page, click Create New Project.

As we develop features in the Firefox Driver, we expose the ability to use


them. For example, until we feel native events are stable on Firefox for Linux,
they are disabled by default. To enable them: Firefox Driver
Controls the Firefox browser using a Firefox plugin. The Firefox Profile that is
used is stripped down from what is installed on the machine to only include
the Selenium WebDriver.xpi (plugin). A few settings are also changed by
default (see the source to see which ones) Firefox Driver is capable of being
run and is tested on Windows, Mac, Linux. Currently on versions 3.6, 10,
latest - 1, latest

Usage

FirefoxProfile profile = new FirefoxProfile();


profile.setEnableNativeEvents(true);
WebDriver driver = new FirefoxDriver(profile);

Info
See the Firefox section in the wiki page for the most up to date info.
Internet Explorer Driver
The InternetExplorerDriver is a standalone server which implements
WebDriver’s wire protocol. This driver has been tested with IE 7, 8, 9, 10,
and 11 on appropriate combinations of Vista, Windows 7, Windows 8, and
Windows 8.1. As of 15 April 2014, IE 6 is no longer supported.

The driver supports running 32-bit and 64-bit versions of the browser. The
choice of how to determine which “bit-ness” to use in launching the browser
depends on which version of the IEDriverServer.exe is launched. If the 32-
bit version of IEDriverServer.exe is launched, the 32-bit version of IE will be
launched. Similarly, if the 64-bit version of IEDriverServer.exe is launched,
the 64-bit version of IE will be launched.

T Three Dimensional Knowledge is required for Software Testers ypes of Banks:


a) Saving Banks
Saving banks are established to create saving habit among the people. These banks
are helpful for salaried people and low income groups. The deposits collected from
customers are invested in bonds, securities, etc. At present most of the commercial
banks carry the functions of savings banks. Postal department also performs the
functions of saving bank.

Where can I find a full test automation


project with Selenium WebDriver?
21:43 Posted by Alex Siminiuc 11 Comments

You have been learning test automation with Selenium.

You went through lots of concepts and would like to see how they all work together.

Where can you find a project that uses everything you learned and more?

Here :)

What follows is a small project that I built a while ago for a job interview.

It uses many test automation concepts such as:


 page factory
 base classes
 html classes
 test listeners
 test ng assertions and fixtures
 annotations
 custom locators (javascript and jquery)
 screenshots
 saving errors in text files

The exercise consisted in automating the following test case with Java and Selenium WebDriver:

 Launch bestbuy url (www.bestbuy.ca)


 Search a product and add it to cart
 Go all the way through checkout process and place the order with invalid credit card
 Capture the error message due to invalid credit card

Before downloading the project and checking the source code, a few details about the project.

Project details

Maven project
- all dependencies are managed through the pom.xml file

Test NG
- unit testing library
Java JDK 8
- used for lambda expressions and streams

Page Factory
- pattern for creating page object and page fragment classes
- the elements of page object/fragment classes have names and locators
- names and locators are implemented using annotations
- available locator types are id, xpath, css, name and javascript
view source he biggest change in Selenium recently has been the inclusion of
the WebDriver API. Driving a browser natively as a user would either locally
or on a remote machine using the Selenium Server it marks a leap forward
in terms of browser automation.

Selenium WebDriver fits in the same role as RC did, and has incorporated
the original 1.x bindings. It refers to both the language bindings and the
implementations of the individual browser controlling code. This is commonly
referred to as just "WebDriver" or sometimes as Selenium 2.

Selenium 1.0 + WebDriver = Selenium 2.0


 WebDriver is designed in a simpler and more concise programming
interface along with addressing some limitations in the Selenium-RC
API.
 WebDriver is a compact Object Oriented API when compared to
Selenium1.0
 It drives the browser much more effectively and overcomes the
limitations of Selenium 1.x which affected our functional test coverage,
like the file upload or downloa

print?
01 @Name("SEARCH_HEADER")
02 @FindBy(className = "main-navigation-container")
03 public class SearchHeader extends HtmlElement{
04
05 @Name("SEARCH_FIELD")
@FindBy(id
06
= "ctl00_MasterHeader_ctl00_uchead_GlobalSearchUC_TxtSearchKeyword")
07 private TextInput searchKeywordTxt;
08
09 @Name("SEARCH_BUTTON")
@FindBy(id
10
= "ctl00_MasterHeader_ctl00_uchead_GlobalSearchUC_BtnSubmitSearch")
11 private Button searchBtn;
12
13 public void search(String keyword) {
14 searchKeywordTxt.click();
15 searchKeywordTxt.clear();
16 searchKeywordTxt.sendKeys(keyword);
17 searchBtn.click();
18 }
19 }

Main folder (framework classes)


annotations classes
- FindBy
- FindByJQUERY
- FindByJS
- Name
- Timeout
view source
print?
01 package com.bestbuy.demo.annotations;
02
03 import java.lang.annotation.ElementType;
04 import java.lang.annotation.Retention;
05 import java.lang.annotation.RetentionPolicy;
06 import java.lang.annotation.Target;
07
08 @Retention(RetentionPolicy.RUNTIME)
09 @Target({ElementType.TYPE, ElementType.FIELD})
10 public @interface Name {
11 String value();
12 }

You might also like