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