Test Mühendisleri için Java Part 1
Bu yazımızda bir test mühendisinin ihtiyaç duyabileceği kadar Java öğreneceğiz.
Java ile özellikle test otomasyonu özelinde yapılmış oldukça popüler olan framework vardır.
Selenium WebDriver: Java ile en çok kullanılan web uygulamalarını test etmek için kullanılan bir framework. Tarayıcılarla etkileşim kurmak için kullanılır ve çeşitli test senaryolarını otomatikleştirmek için kullanılabilir.
TestNG: TestNG, Java’da yazılmış bir test çerçevesidir ve JUnit’e alternatif olarak kullanılabilir. Test sınıflarını ve test yöntemlerini düzenlemek ve yürütmek için kullanılır.
JUnit: JUnit, Java dilinde yazılan yazılım bileşenlerinin otomatik test edilmesi için kullanılan bir çerçevedir. Unit testleri yazmak için oldukça popülerdir.
Cucumber: Cucumber, kabul testlerini (acceptance tests) uygulama davranışlarını tanımlamak ve doğrulamak için kullanılan bir araçtır. Java dilinde yazılan BDD (Behavior Driven Development) test senaryolarını destekler.
Appium: Appium, Java dili kullanılarak mobil uygulamaların test otomasyonu için kullanılan bir framework’tür. Android ve iOS uygulamalarını destekler.
Rest Assured: Java dilinde RESTful web servisleri test etmek için kullanılan bir framework’tür. REST API’ler üzerinde HTTP istekleri göndermek ve yanıtları doğrulamak için kullanılabilir.
JMeter: Java ile yazılmış bir yük testi aracı olan Apache JMeter, web uygulamalarının performansını test etmek için kullanılır. HTTP, HTTPS, JDBC, LDAP, JMS gibi farklı protokolleri destekler.
Java bir nesne yönelimli programlama dilidir. Programda ki metin ifadeleri dışında Türkçe karakter kullanılmamalıdır. Java harfe duyarlı bir dildir. Kelimelerdeki küçük ve büyük harfler farklı olarak algılanır.
Metod adları küçük harfle başlar. Eğer iki kelime birleştirilecekse ismin başlangıç harfi küçük diğer birleştirilen kelimelerin başlangıç harfleri büyük yazılır buna da Camel Case denir.
Basit bir terminale yazdır ile başlayalım.
public class Main {
public static void main(String[] args) {
System.out.println("Emir Elibol");
System.out.println("Test Otomasyonu");
}
}
Emir Elibol
Test Otomasyonu
Java Değişkenler
Değişkenler veriyi kaydederek uygulamamızda kullanmamızı sağlar. Java da pek çok değişken vardır.
public class Main {
public static void main(String[] args) {
int ilkSayi; // int = Tam sayı demektir.
ilkSayi = 10;
System.out.println(ilkSayi);
String ilkMetin = "Emir Elibol"; // String değişkeni.
System.out.println(ilkMetin);
}
}
10
Emir Elibol
public class VeriTipleriDemosu {
public static void main(String[] args) {
byte myByte = 50; //-128 ile 128 arası yazılabilir.
short myShort = 25000; // -32768 ile 32767 arası yazılabilir.
int myInt = 1500000000;
long myLong = 1000000000000L; // Sonrasında long tanımlanırken L yazılmalı ki Java anlasın.
float myFloat = 56.44f; // Sonrasında f koyduk ki float olduğunu anlasın.
double myDouble = 56.55;
char myChar = 'E';
boolean myBoolean = true;
}
}
String Veri ve Formatlama
public class IlkStringDemo {
public static void main(String[] args) {
String ilkMetin = "Emir Elibol";
String ikinciMetin = "Yazılım Testi";
System.out.println(ilkMetin);
System.out.println(ikinciMetin);
int metinUzunlugu = ilkMetin.length(); // Karakter uzunluğunuu verir.
System.out.println(metinUzunlugu);
String kucukHarf = ilkMetin.toLowerCase(); // Karakterleri küçültür.
System.out.println(kucukHarf);
String buyukHarf = ikinciMetin.toUpperCase(); // Karakterleri büyültür.
System.out.println(buyukHarf);
System.out.println(kucukHarf + buyukHarf); // String karakterler bu şekilde birlikte yazdırılabilir.
System.out.println(kucukHarf + buyukHarf + metinUzunlugu); // String ve int değişkenler birlikte yazdırılabilir.
String yeniString = "Emir Elibol \"Test Otomasyonu\" "; // String ifade içerisine tırnak arasında ifade yazdırmak istersek bu şekilde yapabiliriz.
System.out.println(yeniString);
}
}
Emir Elibol
Yazılım Testi
11
emir elibol
YAZILIM TESTİ
emir elibolYAZILIM TESTİ
emir elibolYAZILIM TESTİ11
Emir Elibol "Test Otomasyonu"
Process finished with exit code 0
Java Tip Dönüşümleri
public class VeriTipleriDemosu {
public static void main(String[] args) {
byte myByte = 50; //-128 ile 128 arası yazılabilir.
short myShort = 25000; // -32768 ile 32767 arası yazılabilir.
int myInt = 1500000000;
long myLong = 1000000000000L; // Sonrasında long tanımlanırken L yazılmalı ki Java anlasın.
float myFloat = 56.44f; // Sonrasında f koyduk ki float olduğunu anlasın.
double myDouble = 56.55;
char myChar = 'E';
boolean myBoolean = true;
int veriGenisletme = myByte; //Daha geniş aralığa sahip olan int'e bu şekilde dönüşüm yaptık.
System.out.println(veriGenisletme);
int veriDaraltma = (int)myDouble; // Double veriyi int'e dönüşüm yaparken başına int ifadesini getirdik.
System.out.println(veriDaraltma);
int floatDaraltma = (int)myFloat; // Float veriyi int'e dönüşüm yaparken başına int ifadesini getirdik.
System.out.println(floatDaraltma);
String Sayi = "10";
int Sayi1 = Integer.parseInt(Sayi); // String'i int' çevirme işlemi
System.out.println(Sayi1);
Sayi = Integer.toString(Sayi1); // Int veri tipini String^e çevirme.
System.out.println(Sayi.getClass());
}
}
50
56
56
10
class java.lang.String
Process finished with exit code 0
Arrays (Diziler)
Array, aynı tipten çok sayıda değişken tanımlamak için kullanılır.
Array bir sınıftır.
public class ArrayDemo {
public static void main(String[] args) {
String[] isimler = {"Emir","Ece","Osman","Deniz"}; // Birden fazlaq String ifade tanımlandı.
int[] sayilar = {5,4,46,303,5005}; //Birden fazla int ifade tanımlandı.
System.out.println(isimler[1]); //Diziler yazdırılırken indeks verilmesi gerekmektedir.
System.out.println(sayilar[3]);
System.out.println(isimler[3]);
isimler[3] = "Onur"; //Dizinin üçüncü indeksi başka bir ifade ile değiştirildi.
System.out.println(isimler[3]);
String[] weburl = {"www.sayfa1.com","www.sayfa2.com"};
System.out.println(weburl[0]);
int diziUzunlugu = isimler.length; //Dizi uzunluğu legth fonksiyonu ile bulundu ve yazdırıldı.
System.out.println(diziUzunlugu);
for (int i = 0; i < isimler.length; i++){ //Dizideki ifadeleri for döngüsünde yazdıralım.
System.out.println(isimler[i]);
}
}
}
Ece
303
Deniz
Onur
www.sayfa1.com
4
Emir
Ece
Osman
Onur
Operatörler
public class Operatorler {
public static void main(String[] args) {
int a = 40;
int b = 20;
double c = 55.12;
//Aritmetik Operatörler
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);
System.out.println(a+c);
System.out.println("----------------");
// ++ , --
System.out.println(++a);
System.out.println(++a);
System.out.println(--b);
System.out.println(--b);
System.out.println(--b);
// Atama Operatörleri
int d = 50; // Eşittir ifadesi atama operatörüdür
System.out.println("---------------");
d += 3;
System.out.println(d);
d -= 2;
System.out.println(d);
}
}
60
20
800
2
95.12
----------------
41
42
19
18
17
---------------
53
51
Process finished with exit code 0
Operatörler 2
public class Operatörler2 {
public static void main(String[] args) {
int a = 30;
int b = 40;
int c = 60;
// Karşılaştırma Operatörleri
// == , != , > , < , >= , <
System.out.println(a == b);
System.out.println(a != b);
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a >= b);
System.out.println(a <= b);
if (a != b){
System.out.println("Koşul sağlandı");
}
if (a >= b){
System.out.println("Koşul sağlandı");
}
if (a > 40 && c < 70){
System.out.println("Koşul sağlandı");
}
if (a > 20 || c < 50) {
System.out.println("Koşul sağlandı.");
}
}
}
false
true
false
true
false
true
Koşul sağlandı
Koşul sağlandı.
Process finished with exit code 0
If Else Koşul
public class IfElseKosulDemo
{
public static void main(String[] args) {
int saat = 1000;
if (saat < 1200)
{
System.out.println("Saat öğleden önce");
if (saat == 1000)
{
System.out.println("Günaydın! saat 10");
}
}
else if (saat == 1200)
{
System.out.println("Saat öğle 1200");
}
else {
System.out.println("Saat öğleden sonra");
}
}
}
Saat öğleden önce
Günaydın! saat 10
Process finished with exit code
Switch Case
public class SwitchCaseDemo
{
public static void main(String[] args) {
int sayi = 3;
switch( sayi){
case 1:
System.out.println("Verilen sayi 1 e eşittir");
break;
case 2:
System.out.println("Verilen sayi 2 ye eşittir");
break;
default:
System.out.println("Sayi 1 e ya da 2 ye eşit değildir.");
}
}
}
Sayi 1 e ya da 2 ye eşit değildir.
Process finished with exit code 0
For Döngüsü
import javax.swing.*;
public class LoopDonguDemo
{
public static void main(String[] args) {
for (int i = 0;i<10;i++)
{
System.out.println("Değişkenimizin değeri " + i);
}
for (double i = 0;i < 10;i += 0.25){
System.out.println("Değişkenimizin değeri " + i);
}
int sayfa = 5;
for (int i = 1; i <= sayfa; i++)
{
System.out.println("sayfa sayisi " + i);
if (i ==3){
System.out.println("Koşul sağlandı " + i);
break;
}
}
System.out.println("--------------------------");
String[] isimler = {"Ozan","Onur","Haza"};
for (int i = 0; i < isimler.length;i++){
System.out.println("Listedeki isimler " + isimler[i]);
}
// Gelişmiş Loop
for (String isim:isimler){
System.out.println("Gelişmiş döngü ile isimler " + isim);
}
}
}
Değişkenimizin değeri 0
Değişkenimizin değeri 1
Değişkenimizin değeri 2
Değişkenimizin değeri 3
Değişkenimizin değeri 4
Değişkenimizin değeri 5
Değişkenimizin değeri 6
Değişkenimizin değeri 7
Değişkenimizin değeri 8
Değişkenimizin değeri 9
Değişkenimizin değeri 0.0
Değişkenimizin değeri 0.25
Değişkenimizin değeri 0.5
Değişkenimizin değeri 0.75
Değişkenimizin değeri 1.0
Değişkenimizin değeri 1.25
Değişkenimizin değeri 1.5
Değişkenimizin değeri 1.75
Değişkenimizin değeri 2.0
Değişkenimizin değeri 2.25
Değişkenimizin değeri 2.5
Değişkenimizin değeri 2.75
Değişkenimizin değeri 3.0
Değişkenimizin değeri 3.25
Değişkenimizin değeri 3.5
Değişkenimizin değeri 3.75
Değişkenimizin değeri 4.0
Değişkenimizin değeri 4.25
Değişkenimizin değeri 4.5
Değişkenimizin değeri 4.75
Değişkenimizin değeri 5.0
Değişkenimizin değeri 5.25
Değişkenimizin değeri 5.5
Değişkenimizin değeri 5.75
Değişkenimizin değeri 6.0
Değişkenimizin değeri 6.25
Değişkenimizin değeri 6.5
Değişkenimizin değeri 6.75
Değişkenimizin değeri 7.0
Değişkenimizin değeri 7.25
Değişkenimizin değeri 7.5
Değişkenimizin değeri 7.75
Değişkenimizin değeri 8.0
Değişkenimizin değeri 8.25
Değişkenimizin değeri 8.5
Değişkenimizin değeri 8.75
Değişkenimizin değeri 9.0
Değişkenimizin değeri 9.25
Değişkenimizin değeri 9.5
Değişkenimizin değeri 9.75
sayfa sayisi 1
sayfa sayisi 2
sayfa sayisi 3
Koşul sağlandı 3
--------------------------
Listedeki isimler Ozan
Listedeki isimler Onur
Listedeki isimler Haza
Gelişmiş döngü ile isimler Ozan
Gelişmiş döngü ile isimler Onur
Gelişmiş döngü ile isimler Haza
Process finished with exit code 0
While Do Döngüsü
public class WhileDoDemo
{
public static void main(String[] args) {
int j = 1;
while(j <= 5)
{
System.out.println("While loop ile sayiniz " + j);
j += 1;
}
int k = 1;
do {
if (k > 5){
break;
}
System.out.println("Do while loop ile sayiniz " + k);
k += 1;
}
while(true);
}
}
While loop ile sayiniz 1
While loop ile sayiniz 2
While loop ile sayiniz 3
While loop ile sayiniz 4
While loop ile sayiniz 5
Do while loop ile sayiniz 1
Do while loop ile sayiniz 2
Do while loop ile sayiniz 3
Do while loop ile sayiniz 4
Do while loop ile sayiniz 5
Process finished with exit code 0
Try Catch
public class TryCatchDemo
{
public static void main(String[] args) {
int [] sayilar = {1,5,10,555,678};
try{
System.out.println(sayilar[5]);
}
catch( ArrayIndexOutOfBoundsException e){
System.out.println(e.getMessage());
}
System.out.println("Hata sonrasi konsola yazdir");
}
}
Index 5 out of bounds for length 5
Hata sonrasi konsola yazdir
Process finished with exit code 0
Java Methodları
public class JavaMethodlariDemo
{
public static void main(String[] args) {
konsolaYazdir();
konsolaYazdir();
konsolaYazdir();
yasadigimSehir();
}
private static void konsolaYazdir(){
System.out.println("Merhaba Dünya!");
}
private static void yasadigimSehir(){
System.out.println("İstanbul");
}
}
Merhaba Dünya!
Merhaba Dünya!
Merhaba Dünya!
İstanbul
Process finished with exit code 0
Method Parametreleri
public class MethodParametreleriDemo
{
public static void main(String[] args) {
konsolCiktisi("Emir");
toplamIslemi(10,20);
sinavNotlari("Emir",100);
}
private static void konsolCiktisi(String isim){
System.out.println("Merhaba Dünya" + " ve merhaba " + isim);
}
private static void toplamIslemi(int a,int b){
System.out.println(a+b);
}
private static void sinavNotlari(String ad, int not){
System.out.println(ad + " isimli öğrencinin notu " + not);
}
}
Merhaba Dünya ve merhaba Emir
30
Emir isimli öğrencinin notu 100
Process finished with exit code 0
Return Type Method
public class ReturnTypeMethod
{
public static void main(String[] args) {
int carpmaSonucu = carpma(10,20);
System.out.println(carpmaSonucu);
int toplamaSonucu = toplama(10,20);
System.out.println(toplamaSonucu);
}
private static int carpma(int a, int b)
{
int carpmaSonucu = a*b;
return carpmaSonucu;
}
private static int toplama(int a, int b)
{
int toplamaSonucu = a+b;
return toplamaSonucu;
}
}
200
30
Process finished with exit code 0
Method Overloading
public class MethodOverloading
{
public static void main(String[] args) {
System.out.println(toplamaIslemi(10,20));
System.out.println(toplamaIslemi(10,20,30));
System.out.println(toplamaIslemi(10.5,20.5));
}
private static int toplamaIslemi(int a, int b)
{
return a+b;
}
private static int toplamaIslemi(int a,int b,int c) //Aynı isimlerle oluşturulan Methodların farklı parametrelerle girilmesine Method Overloading denir.
{
return a+b+c;
}
private static double toplamaIslemi(double a, double b)
{
return a+b;
}
}
30
60
31.0
Process finished with exit code 0