Android - การทดสอบ

กรอบงาน Android ประกอบด้วยกรอบการทดสอบแบบบูรณาการที่ช่วยให้คุณทดสอบแอปพลิเคชันทุกด้านและเครื่องมือ SDK รวมเครื่องมือสำหรับตั้งค่าและเรียกใช้แอปพลิเคชันทดสอบ ไม่ว่าคุณจะทำงานใน Eclipse กับ ADT หรือทำงานจากบรรทัดคำสั่งเครื่องมือ SDK จะช่วยคุณตั้งค่าและเรียกใช้การทดสอบของคุณภายในโปรแกรมจำลองหรืออุปกรณ์ที่คุณกำหนดเป้าหมาย

โครงสร้างการทดสอบ

เครื่องมือสร้างและทดสอบของ Android จะถือว่าโครงการทดสอบจัดเป็นโครงสร้างมาตรฐานของการทดสอบคลาสกรณีทดสอบแพ็คเกจทดสอบและโครงการทดสอบ

เครื่องมือทดสอบใน Android

มีเครื่องมือมากมายที่สามารถใช้ทดสอบแอปพลิเคชัน Android ได้ บางอย่างเป็นทางการเช่น Junit, Monkey และบางส่วนเป็นเครื่องมือของบุคคลที่สามที่สามารถใช้ทดสอบแอปพลิเคชัน Android ได้ ในบทนี้เราจะอธิบายเครื่องมือทั้งสองนี้เพื่อทดสอบแอปพลิเคชัน Android

  • JUnit
  • Monkey

JUnit

คุณสามารถใช้ JUnit TestCaseเพื่อทำการทดสอบหน่วยในคลาสที่ไม่เรียก Android API TestCase ยังเป็นคลาสพื้นฐานสำหรับ AndroidTestCase ซึ่งคุณสามารถใช้ทดสอบวัตถุที่ขึ้นกับ Android ได้ นอกเหนือจากการให้ JUnit framework แล้ว AndroidTestCase ยังมีวิธีการตั้งค่าการฉีกขาดและตัวช่วยสำหรับ Android โดยเฉพาะ

ในการใช้ TestCase ให้ขยายคลาสของคุณด้วยคลาส TestCase และใช้การเรียกใช้เมธอด setUp () ไวยากรณ์ได้รับด้านล่าง -

public class MathTest extends TestCase {
   protected double fValue1;
   protected double fValue2;

   protected void setUp() {
      fValue1= 2.0;
      fValue2= 3.0;
   }
}

สำหรับการทดสอบแต่ละครั้งใช้วิธีการที่โต้ตอบกับฟิกซ์เจอร์ ตรวจสอบผลลัพธ์ที่คาดหวังด้วยการยืนยันที่ระบุโดยการเรียก assertTrue (String, boolean) ด้วยบูลีน

public void testAdd() {
   double result= fValue1 + fValue2;
   assertTrue(result == 5.0);
}

วิธีการยืนยันจะเปรียบเทียบค่าที่คุณคาดหวังจากการทดสอบกับผลลัพธ์จริงและทำให้เกิดข้อยกเว้นหากการเปรียบเทียบล้มเหลว

เมื่อกำหนดวิธีการแล้วคุณสามารถรันได้ ไวยากรณ์ได้รับด้านล่าง -

TestCase test= new MathTest("testAdd");
test.run();

ลิง

UI / Application Exerciser Monkey ซึ่งมักเรียกว่า "ลิง" เป็นเครื่องมือบรรทัดคำสั่งที่ส่งสตรีมการกดแป้นพิมพ์การสัมผัสและท่าทางแบบสุ่มหลอกไปยังอุปกรณ์ คุณเรียกใช้ด้วยเครื่องมือ Android Debug Bridge (adb)

คุณใช้เพื่อทดสอบความเครียดแอปพลิเคชันของคุณและรายงานข้อผิดพลาดที่พบ คุณสามารถทำสตรีมของเหตุการณ์ซ้ำได้โดยการเรียกใช้เครื่องมือทุกครั้งด้วยการสุ่มหมายเลขเดียวกัน

คุณสมบัติของลิง

Monkey มีคุณสมบัติมากมาย แต่สามารถสรุปได้ทั้งหมด 4 หมวดหมู่นี้

  • ตัวเลือกการกำหนดค่าพื้นฐาน
  • ข้อ จำกัด ในการดำเนินงาน
  • ประเภทเหตุการณ์และความถี่
  • ตัวเลือกการดีบัก

การใช้ลิง

ในการใช้ลิงให้เปิดพรอมต์คำสั่งและไปที่ไดเร็กทอรีต่อไปนี้

android ->sdk ->platform-tools

เมื่ออยู่ในไดเร็กทอรีให้แนบอุปกรณ์ของคุณกับพีซีและเรียกใช้คำสั่งต่อไปนี้

adb shell monkey -p your.package.name -v 500

คำสั่งนี้สามารถแบ่งออกเป็นขั้นตอนเหล่านี้

  • adb - Android Debug Bridge เครื่องมือที่ใช้เชื่อมต่อและส่งคำสั่งไปยังโทรศัพท์ Android ของคุณจากคอมพิวเตอร์เดสก์ท็อปหรือแล็ปท็อป
  • shell - เชลล์เป็นเพียงอินเทอร์เฟซบนอุปกรณ์ที่แปลคำสั่งของเราเป็นคำสั่งระบบ
  • ลิง - ลิงเป็นเครื่องมือทดสอบ
  • v - v ย่อมาจาก verbose method
  • 500- คือความถี่ของการเชื่อมต่อหรือจำนวนเหตุการณ์ที่จะส่งไปทดสอบ

สิ่งนี้ยังแสดงในรูป -

ในคำสั่งด้านบนคุณเรียกใช้เครื่องมือลิงบนแอปพลิเคชัน Android UI เริ่มต้น ตอนนี้เพื่อเรียกใช้กับแอปพลิเคชันของคุณสิ่งที่คุณต้องทำมีดังนี้

ในที่สุดคุณก็จะเสร็จสิ้นดังที่แสดงไว้

สิ่งนี้ได้แสดงไว้ในรูปด้านล่าง เมื่อพิมพ์คำสั่งนี้คุณกำลังสร้างเหตุการณ์สุ่ม 500 เหตุการณ์สำหรับการทดสอบ

ตัวอย่าง

ตัวอย่างด้านล่างแสดงให้เห็นถึงการใช้การทดสอบ มันเป็นแอพพลิเคชั่นพื้นฐานที่สามารถใช้กับลิงได้

ในการทดลองกับตัวอย่างนี้คุณต้องเรียกใช้สิ่งนี้บนอุปกรณ์จริงจากนั้นทำตามขั้นตอนลิงที่อธิบายไว้ในตอนต้น

ขั้นตอน คำอธิบาย
1 คุณจะใช้แอนดรอยด์สตูดิโอเพื่อสร้างแอปพลิเคชัน Android ภายใต้แพ็คเกจ com.tutorialspoint.myapplication
2 แก้ไขไฟล์ src / MainActivity.java เพื่อเพิ่มรหัสกิจกรรม
3 แก้ไขไฟล์ layouta XML res / layout / activity_main.xml เพิ่มคอมโพเนนต์ GUI หากจำเป็น
4 สร้างไฟล์ src / second.java เพื่อเพิ่มรหัสกิจกรรม
5 แก้ไขไฟล์ XML เค้าโครง res / layout / view.xml เพิ่มคอมโพเนนต์ GUI หากจำเป็น
6 เรียกใช้แอปพลิเคชันและเลือกอุปกรณ์ Android ที่ใช้งานอยู่และติดตั้งแอปพลิเคชันบนแอปพลิเคชันและตรวจสอบผลลัพธ์

นี่คือเนื้อหาของ MainActivity.java.

package com.tutorialspoint.myapplication;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
   Button b1;
   @Override

   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      b1=(Button)findViewById(R.id.button);
   }

   public void button(View v){
      Intent in =new Intent(MainActivity.this,second.class);
      startActivity(in);
   }

}

นี่คือเนื้อหาของ second.java.

package com.tutorialspoint.myapplication;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class second extends Activity{
   @Override

   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.view);
      Button b1=(Button)findViewById(R.id.button2);

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            Toast.makeText(second.this,"Thanks",Toast.LENGTH_SHORT).show();
         }
      });
   }
}

นี่คือเนื้อหาของ activity_main.xml.

ในโค้ดด้านล่าง abc ระบุโลโก้ของ tutorialspoint.com
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
   android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="UI Animator Viewer"
      android:id="@+id/textView"
      android:textSize="25sp"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point"
      android:id="@+id/textView2"
      android:layout_below="@+id/textView"
      android:layout_alignRight="@+id/textView"
      android:layout_alignEnd="@+id/textView"
      android:textColor="#ff36ff15"
      android:textIsSelectable="false"
      android:textSize="35dp" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView2"
      android:layout_centerHorizontal="true" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Button"
      android:onClick="button"
      android:id="@+id/button"
      android:layout_below="@+id/imageView"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="100dp" />

</RelativeLayout>

นี่คือเนื้อหาของ view.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent" android:layout_height="match_parent">
   
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="button"
      android:id="@+id/button2"
      android:layout_centerVertical="true"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point "
      android:id="@+id/textView3"
      android:textColor="#ff3aff22"
      android:textSize="35dp"
      android:layout_above="@+id/button2"
      android:layout_centerHorizontal="true"
      android:layout_marginBottom="90dp" />
      
</RelativeLayout>

นี่คือเนื้อหาของ Strings.xml.

<resources>
   <string name="app_name">My Application</string>
</resources>

นี่คือเนื้อหาของ AndroidManifest.xml.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.tutorialspoint.myapplication" >
   
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
      <activity android:name=".second"></activity>
      
   </application>
</manifest>

มาลองเรียกใช้แอปพลิเคชันทดสอบ Android ของคุณ ฉันถือว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ ในการเรียกใช้แอปจาก Android studio ให้เปิดไฟล์กิจกรรมของโครงการแล้วคลิก

ไอคอนเรียกใช้จากแถบเครื่องมือ ก่อนที่จะเริ่มแอปพลิเคชันของคุณ Android studio จะแสดงหน้าต่างต่อไปนี้เพื่อเลือกตัวเลือกที่คุณต้องการเรียกใช้แอปพลิเคชัน Android ของคุณ

เลือกอุปกรณ์เคลื่อนที่ของคุณเป็นตัวเลือกจากนั้นตรวจสอบอุปกรณ์เคลื่อนที่ของคุณซึ่งจะแสดงหน้าจอแอปพลิเคชัน ตอนนี้เพียงทำตามขั้นตอนที่ระบุไว้ด้านบนใต้ส่วนลิงเพื่อทำการทดสอบแอปพลิเคชันนี้