Hello! My name is Mallikarjuna Reddy Duvoori, and Currently working as Senior QA Engineer who loves to create Industry standard frameworks for Web, Mobile, and API automation. Possess a good understanding of testing concepts and quality management practices and have a good understanding of Functional Automation tools.
Career Highlights:
- Experience in designing, developing, and maintaining automated test scripts and frameworks, with a focus on improving test coverage, accuracy, and efficiency.
- Implemented API automation framework using Rest Assured, Java, TestNG, and Maven.
- Implemented Mobile test automation framework for both Android and iOS platforms using Appium, Java, TestNG & Maven.
- Explored cloud services available in the market, finalize and set up cloud service which best suited the organization’s requirement, for Mobile App script execution.
- Implemented Web automation framework using Selenium, Java, TestNG & Maven
- Implemented performance testing framework using JMeter. Involved in the continuous integration of the automation framework with Jenkins.
- Regularly monitor production APIs using Kibana.
- Manipulating response data for UI validation using Charles proxy. Experience in A/B testing using the Optimizely tool.
- Experience in Mixpanel Events tracking tool.
- Experience in Accessibility testing.
- Participated in peer review of manual test cases.
- Reported and tracked defects through Jira.
- Well-versed in various facets of testing such as Functional Testing, Usability Testing, Regression Testing, Sanity Testing, and Accessibility Testing, Cross Browser validation.
- Certified Scrum Fundamentals from Scrum Study.
- The team is distributed in several cities in the US, with members in India, Peru, and Costa Rica. Effectively coordinate between teams.
- Participate in daily Standup, Sprint planning, Tech Grooming, and Retro meetings.
- Certify the build and release features to Production for Web & Backend APIs. Excellent communication and collaboration skills, with the ability to work closely with developers and other cross-functional teams.
Access My Profile on LinkedIn & Github:
- LinkedIn – https://www.linkedin.com/in/mallikarjunareddyduvoori/
- GitHub – https://github.com/ArjunReddyD
My Testing Tools:
Automation | Rest Assured, Selenium WebDriver, Appium, Protractor |
Languages | Java |
Web Technologies | HTML, XML, CSS, Angular JS, Node.JS |
Performance | JMeter |
IDE | Eclipse, IntelliJ IDEA |
Test Framework | TestNG, Data Driven & Key Word Driven Framework |
Proxy Tool | Charles Proxy |
Build Tool | Maven |
Processes | Agile-Scrum, Waterfall |
Test Management Tools | JIRA, Test Rail, Test Link, XRay, Confluence |
Continuous Integration Tools | Jenkins, Docker |
Version Control | GIT, Bitbucket |
Data Bases | MySQL Workbench |
Operating Systems | Ubuntu, Mac & Windows |
Rest API | PostMan, Swagger |
Tools I explored so far:
- K6 – API Performance Testing.
- Perfecto – Mobile Apps Cloud Automation Testing
- AWS Device Farm – Mobile Apps Cloud Automation Testing
- Sauce Labs – Mobile Cloud Apps Automation Testing
- Applitools – Visual Test Automation
- TestLink – Configured TestLink with Selenium to update execution status in TestLink.
- Burp Suite – Web application security Tool
- QARK – Tool to look for several security-related Android application vulnerabilities
- ASTRA – Automated Security Testing For REST APIs
Congrats…Good Staring.. Keeps Rocking 🙂
LikeLiked by 1 person
Good luck
LikeLiked by 1 person
Thank You Ohad 🙂
LikeLike
bro..nice but u need to update more topics
LikeLiked by 1 person
Sure Nagarjuna… it’s just beginning. I will keep updating the site as soon as possible.
Thank you
LikeLiked by 1 person
Hi Mallikarjunareddy,
Thanks for sharing
LikeLiked by 1 person
Your Welcome Satya
LikeLike
public static String[][] readExcelData(String filePath,String sheetName,String tableName) {
String[][] testData = null;
if(filePath.contains(“xlsx”)){
try {
XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(
filePath));
XSSFSheet sheet = workbook.getSheet(sheetName);
XSSFCell[] boundaryCells = findCell(sheet, tableName);
XSSFCell startCell = boundaryCells[0];
XSSFCell endCell = boundaryCells[1];
int startRow = startCell.getRowIndex() + 1;
int endRow = endCell.getRowIndex() – 1;
int startCol = startCell.getColumnIndex() + 1;
int endCol = endCell.getColumnIndex() – 1;
testData = new String[endRow – startRow + 1][endCol – startCol + 1];
for (int i = startRow; i < endRow + 1; i++) {
for (int j = startCol; j < endCol + 1; j++) {
if(sheet.getRow(i).getCell(j).getCellType()==1)
testData[i – startRow][j – startCol] = sheet.getRow(i)
.getCell(j).getStringCellValue();
else if(sheet.getRow(i).getCell(j).getCellType()==0) {
if(DateUtil.isCellDateFormatted(sheet.getRow(i).getCell(j))){
@SuppressWarnings("deprecation")
String month = (new Integer(sheet.getRow(i).getCell(j).getDateCellValue().getMonth()+1)).toString();
@SuppressWarnings("deprecation")
String day = new Integer(sheet.getRow(i).getCell(j).getDateCellValue().getDate()).toString();
@SuppressWarnings("deprecation")
String year = (new Integer(sheet.getRow(i).getCell(j).getDateCellValue().getYear()+1900)).toString();
if (day.length() == 1)
day = "0"+day;
if(month.length()==1)
month = "0"+month;
String date = month+"/"+day+"/"+year;
//System.out.println(date+" date");
testData[i – startRow][j – startCol] = date;
}
else{
testData[i – startRow][j – startCol] = new Integer((int) sheet.getRow(i)
.getCell(j).getNumericCellValue()).toString();
}
}
}
}
} catch (FileNotFoundException e) {
System.out.println("Could not read the Excel sheet");
e.printStackTrace();
} catch (IOException e) {
System.out.println("Could not read the Excel sheet");
e.printStackTrace();
}
return testData;
}
else{
try {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(filePath));
HSSFSheet sheet = workbook.getSheet(sheetName);
HSSFCell[] boundaryCells = findCell(sheet, tableName);
HSSFCell startCell = boundaryCells[0];
HSSFCell endCell = boundaryCells[1];
int startRow = startCell.getRowIndex() + 1;
int endRow = endCell.getRowIndex() – 1;
int startCol = startCell.getColumnIndex() + 1;
int endCol = endCell.getColumnIndex() – 1;
testData = new String[endRow – startRow + 1][endCol – startCol + 1];
for (int i = startRow; i < endRow + 1; i++) {
for (int j = startCol; j < endCol + 1; j++) {
if(sheet.getRow(i).getCell(j).getCellType()==1) {
testData[i – startRow][j – startCol] = sheet.getRow(i)
.getCell(j).getStringCellValue();
}
else if(sheet.getRow(i).getCell(j).getCellType()==0) {
if(DateUtil.isCellDateFormatted(sheet.getRow(i).getCell(j))){
@SuppressWarnings("deprecation")
String month = (new Integer(sheet.getRow(i).getCell(j).getDateCellValue().getMonth()+1)).toString();
@SuppressWarnings("deprecation")
String day = new Integer(sheet.getRow(i).getCell(j).getDateCellValue().getDate()).toString();
@SuppressWarnings("deprecation")
String year = (new Integer(sheet.getRow(i).getCell(j).getDateCellValue().getYear()+1900)).toString();
if(day.length()==1)
day = "0"+day;
if(month.length()==1)
month = "0"+month;
String date = month+"/"+day+"/"+year;
//System.out.println(date+" date");
testData[i – startRow][j – startCol] = date;
}
else{
testData[i – startRow][j – startCol] = new Integer((int) sheet.getRow(i)
.getCell(j).getNumericCellValue()).toString();
}
}
}
}
} catch (FileNotFoundException e) {
System.out.println("Could not read the Excel sheet");
e.printStackTrace();
} catch (IOException e) {
System.out.println("Could not read the Excel sheet");
e.printStackTrace();
}
return testData;
}
}
public static XSSFCell[] findCell(XSSFSheet sheet, String text) {
String pos = "start";
XSSFCell[] cells = new XSSFCell[2];
for (Row row : sheet) {
for (Cell cell : row) {
if(cell.getCellType()==1){
if (text.equals(cell.getStringCellValue())) {
if (pos.equalsIgnoreCase("start")) {
cells[0] = (XSSFCell) cell;
pos = "end";
} else {
cells[1] = (XSSFCell) cell;
}
}
}
else if(cell.getCellType()==0){
if (text.equals(cell.getNumericCellValue())) {
if (pos.equalsIgnoreCase("start")) {
cells[0] = (XSSFCell) cell;
pos = "end";
} else {
cells[1] = (XSSFCell) cell;
}
}
}
}
}
return cells;
}
public static HSSFCell[] findCell(HSSFSheet sheet, String text) {
String pos = "start";
HSSFCell[] cells = new HSSFCell[2];
for (Row row : sheet) {
for (Cell cell : row) {
if (cell.getCellType()==1) {
if (text.equals(cell.getStringCellValue())) {
if (pos.equalsIgnoreCase("start")) {
cells[0] = (HSSFCell) cell;
pos = "end";
} else {
cells[1] = (HSSFCell) cell;
}
}
}
else if (cell.getCellType()==0) {
if (text.equals(cell.getNumericCellValue())) {
if (pos.equalsIgnoreCase("start")) {
cells[0] = (HSSFCell) cell;
pos = "end";
} else {
cells[1] = (HSSFCell) cell;
}
}
}
}
}
return cells;
}
// This method is added for choosing the communiction type for mailing in personal information tab of eFiling application.
public static String[] findCell(String filepath, String sheetname, String tag) throws Exception, IOException{
System.out.println("// This method is added for choosing the communiction type for mailing in personal information tab of eFiling application.");
XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(filepath));
XSSFSheet sheet = workbook.getSheet(sheetname);
String pos = "start";
String[] cellvalue = new String[10];
XSSFCell[] cells = new XSSFCell[10];
int i=0;
int firsttagreach = 0;
for (Row row : sheet) {
for (Cell cell : row) {
if(cell.getCellType()==1){
if (tag.equals(cell.getStringCellValue())) {
pos = "end";
}
}
else if(cell.getCellType()==0){
if (tag.equals(cell.getNumericCellValue())) {
pos = "end";
}
}
if(pos.equalsIgnoreCase("end")){
System.out.println("cell: "+cell);
if(cell.getStringCellValue().equalsIgnoreCase(tag)&&firsttagreach!=0)
break;
else{
cells[i]=(XSSFCell)cell;
cellvalue[i]=cells[i].toString();
i++;
}
firsttagreach++;
}
}
if(pos.equalsIgnoreCase("end")){
break;
}
}
return cellvalue;
}
LikeLike