一:测试demo创建
1.创建Android项目
包名为“com.kongge.browsertest”,这个可以随便定义,本文以这个位置,测试的时候需要填入包名,如果修改成其他的,后面测试输入内容也需要相应修改。
2.布局文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/tv_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
<EditText
android:id="@+id/edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入"
/>
<Button
android:id="@+id/btn_click"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="click"
/>
</LinearLayout>
2.代码MainActivity.java
package com.kongge.browsertest;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv_result;
private EditText edittext;
private Button btn_click;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_result = (TextView) findViewById(R.id.tv_result);
edittext = (EditText) findViewById(R.id.edittext);
btn_click = (Button) findViewById(R.id.btn_click);
btn_click.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv_result.setText(edittext.getText().toString());
}
});
}
}
3.测试期望
文本框edittext 输入字符串StringTest,点击按钮,将结果展示到tv_result的文本里面,最后判断tv_result文本内容是否等于StringTest。
二:测试环境启动
1.启动ride
命令行输入“ride.py”回车启动。
2.创建项目
File->New Project,输入项目名称“TestProject”,Type选择“Directory”,Parent Directory自己选择一下目录。点击“OK”。
3.新建测试套件suite
鼠标右键点击工程名,会出现一个菜单,“New suite”、“New Directory”和“New Resource”等,“New suite”是创建测试套件;“New Directory”是创建一个目录,这个可以创建多个目录用于划分模块;“New Resource”是创建其他资源。这里点击“New suite”,输入名称“TestSuite”,右侧默认选择“File”和“TXT”,确定即可。
此时选择“TestSuite”,右侧会有三个标签栏,“Edit”是类似与编辑器,有各种操作或提示等;“Text Edit”是一个纯文本,是和“Edit”一起联动的。“Run”是运行测试套件的页面,可以看到一些相关的操作。
4.新建测试用例TestCase
右键点击TestSuite,选择“New Test Case”新建“TestCase”,选择“TestCase”,在右侧“Text Edit”里面输入以下内容。
*** Settings ***
Library AppiumLibrary
*** Test Cases ***
TestCase
Open Application http://localhost:4723/wd/hub platformName=Android platformVersion=4.4.4 deviceName=xxxx appPackage=com.kongge.browsertest appActivity=com.kongge.browsertest.MainActivity
Input Text id=com.kongge.browsertest:id/edittext TestResult
Click Button index=0
${tv_result} Get Text xpath=(//android.widget.TextView[@resource-id='com.kongge.browsertest:id/tv_result'])[1]
Should Be True '${tv_result}'=='TestResult'
需要注意的:
文本变化后要先保存。
将APP安装到设备上。
将platformVersion=4.4.4改成自己的Android系统版本。
deviceName=xxxx,这个使用命令“adb devices”可以查看连接的设备名称,替换即可。
appPackage和appActivity可根据自己的项目修改。
切换到“Edit”标签栏,会发现表格里面自动填充了相关数据。
5.启动appium
运行appium,点击右上角的开始按钮,日志出现“> info: Console LogLevel: debug”表示连接成功。
6.运行
打开ride,选择”TestCase”,右侧选择“Run”,点击“Start”,看到有计时的说明测试已开始,如果是绿色pass:1说明测试通过,红色表示测试失败,会自动生成html文档,在日志里面复制链接然后在浏览器里面打开查看即可。
Tips:
1.运行测试用例失败,提示“No application is open”,可能出现的情况:
<1>第一次运行就提示,可先在手机上面点开APP然后退出,再运行。
<2>第一次运行用例完成之后,立马点击第二次运行出现,这个要等本次测试结束之后才能启动第二次,每次测试完成之后,APP会自动切到后台。在appium日志里面也会打印出“> info: [debug] We shut down because no new commands came in”。