电子商务网站有哪些类型,wordpress文章带描述的工具,电脑html如何转wordpress,wordpress 编写页面代码前言
通常来说#xff0c;我们开发完成产品之后#xff0c;都是由测试组或者是我们自己点一点#xff0c;基本上没有问题了就开始上线。但是#xff0c;随着时间的堆叠#xff0c;一款产品的功能也越来越多。这时#xff0c;我们为了保证产品的质量#xff0c;就需要在…前言
通常来说我们开发完成产品之后都是由测试组或者是我们自己点一点基本上没有问题了就开始上线。但是随着时间的堆叠一款产品的功能也越来越多。这时我们为了保证产品的质量就需要在每次测试时将所有的流程都走一遍。然而对于一款庞大的产品来说这是困难又复杂的。因为我们自己手动测试需要花费大量的时间来完成主业务测试这种重复性工作。为了保证效率以及解决成本我们就需要考虑将这些过程采用自动化测试来完成。
自动化测试介绍
何为自动化测试自动化测试就是通过计算机将我们人工操作的动作自动完成比如自动点击自动填入文本等等。Android也提供了强大的自动化测试工具那就是UIAutomator。官方介绍文档为https://developer.android.google.cn/training/testing/ui-testing/uiautomator-testing.html#setup。
UIAutomator介绍
你可能会有疑问这个自动化测试能完成什么内容我来举个简单的例子 这种登录界面就算没做过但一定也见过。我们一般会在测试时输入用户名密码然后登录。那么自动化测试可以干什么呢它可以自己输入用户名、密码然后登录一气呵成。你可能会觉得就这还需要上自动化测试NoNoNo我这里只是举个例子它能帮你完成任何事情。甚至是唤醒屏幕输入图形验证码等都可以完成。
说到这里肯定有同学已经跃跃欲试了憋着急慢慢来。
UIAutomator的使用
首先我们还是需要照着官方文档学习上面已经提供过地址将它打开。
配置
在Android的APP module中加入以下依赖
dependencies {...androidTestCompile com.android.support.test.uiautomator:uiautomator-v18:2.1.1
}
辅助工具
因为自动化测试是自动完成的所以它需要先找到对应的View才能进行操作。然而怎么指定应该查找哪个View呢Android提供了辅助工具uiautomatorviewer。相信很多同学对这个工具很熟悉。 它位于android-sdk/tools/目录下使用命令行将其启动
$ uiautomatorviewer
启动后找到Device Screenshot按钮uiautomatorviewer将会通过adb开始截取手机上的界面并开始分析View树就像图中所示。这时随便选择一个空间在右下角便会列出该View的一些关键信息。其中图中方框所标识的便是基本的也是最常用的几项信息。这些信息用来在做自动化测试时给UIAutomator提供关键的查找信息。稍后便会用到。
创建测试类
我们需要专门搞一个类用来做自动化测试。如果使用的是AndroidStudio来进行开发那么在创建工程之初AndroidStudio会自动创建好一个Android的测试类就像下面这样 我们平常开发都是在main文件夹里开发平常不会注意到另外两个文件夹androidTest以及test是做什么用的今天你将会了解到它们是用来做什么的。
首先我们做Android测试所用的类就是位于androidTest文件夹下的那个自动创建好的类我们将其打开 在示例类ExampleInstrumentedTest的顶部有两个标注
RunWith(AndroidJUnit4.class)
SdkSuppress(minSdkVersion 18)
这两样是必须要配置的Android的自动化测试框架是基于Android Testing Support Library的它只能运行在Android4.3以上的设备并且它需要和AndroidJUnitRunner一起工作才能完成测试。
如果是自己创建的类那么一定要记得在类的上面添加注解RunWith(AndroidJUnit4.class)除此之外还需要将AndroidJUnitRunner设置为默认的TestRunner。
将AndroidJUnitRunner设置为默认的TestRunner需要在app的build.gradle文件中加入以下配置
android {defaultConfig {testInstrumentationRunner android.support.test.runner.AndroidJUnitRunner}
}
好了我们的测试准备工作已经完成接下来就开始写测试执行过程了。
测试逻辑过程
这里还是使用登录页面做示例该登录页面是由AndroidStudio模板自动生成的。 我们使用自动化测试完成的测试功能有填入用户名、密码然后登录。
我们需要先启动uiautomatorviewer 启动之后的界面 我们点击图中箭头所指的按钮出现以下界面 在左边的图中选择我们第一个要输入文字的EditText输入框我们可以看到右边出现了这个View层级的属性结构以及该View的一些基本属性在这里的的EditText的index为0resource-id为com.sahadev.autotestforlogin:id/password还有它是哪个类android.widget.EditText。
得知这些基本信息之后我们开始了解一下测试代码的执行过程
1.首先需要获得可以访问设备的上下文对象UiDeviceUiDevice的实例通过静态方法getInstance()获得该方法需要传入一个Instrumentation对象。2.通过UiDevice的findObject()来找到UiObject这个UiObject代表了刚刚我们指定的EditText。3.通过UiObject来模拟用户的真实操作比如填入文本或者点击等操作。由于这里是EditText所以我们的工作就是填入文本使用UiObject的setText()方法即可。
测试逻辑实现
有了以上的知识之后我们来实现这个登录过程。
1.首先获得UiDevice对象
mDevice UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
2.通过指定的条件查找代表EditText的UiObject
UiObject email mDevice.findObject(new UiSelector().resourceId(com.sahadev.autotestforlogin:id/email));
3.往EditText中写入邮箱地址
email.setText(sahadevfoxmail.com);
好了到这里如果执行的话系统就会帮我们自动填入这个邮箱地址了。接下来我们的工作就是继续填入密码然后点击登录。我们来完成剩下的代码。完整的代码如下
package com.sahadev.autotestforlogin;import android.support.test.InstrumentationRegistry;
import android.support.test.filters.SdkSuppress;
import android.support.test.runner.AndroidJUnit4;
import android.support.test.uiautomator.UiDevice;
import android.support.test.uiautomator.UiObject;
import android.support.test.uiautomator.UiSelector;import org.junit.Before;
import org.junit.runner.RunWith;/*** Instrumentation test, which will execute on an Android device.** see a hrefhttp://d.android.com/tools/testingTesting documentation/a*/
RunWith(AndroidJUnit4.class)
SdkSuppress(minSdkVersion 18)
public class ExampleInstrumentedTest {private UiDevice mDevice;Beforepublic void startMainActivityFromHomeScreen() {mDevice UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());UiObject email mDevice.findObject(new UiSelector().resourceId(com.sahadev.autotestforlogin:id/email));//填入邮箱地址email.setText(sahadevfoxmail.com);UiObject password mDevice.findObject(new UiSelector().resourceId(com.sahadev.autotestforlogin:id/password));//填入密码password.setText(123456);UiObject loginButton mDevice.findObject(new UiSelector().resourceId(com.sahadev.autotestforlogin:id/email_sign_in_button));//点击登录loginButton.click();}
}
基本的测试代码已经完成接下来就是如何运行了。在AndroidStudio中点击运行按钮即可 运行效果如下 怎么样有没有很想试一把的感觉呢慢慢积累它就是一个很庞大的工程了。今天的文章只是带大家入一下门这个自动化测试工具本身很强大可以完成很多工作。有更多的问题可以加群讨论。UIAutomator的官方介绍文档地址为https://developer.android.google.cn/training/testing/ui-testing/uiautomator-testing.html更多内容请点击查看。 我建了一个QQ群欢迎对学习有兴趣的同学加入。我们可以一起探讨、深究、掌握那些我们会用到的技术让自己不至于太落伍。