- Testing Accessibility
- Testing UI Performance
- Test Recorder
- Testing UI for Multiple Application
- Testing Intents
- Testing Asynchronous Operations
- Testing WebView
- Testing AdapterView
- View Actions
- View Assertions
- Custom View Matchers
- View Matchers
- Architecture
- Overview of JUnit
- Running Tests In Android Studio
- Setup Instructions
- Introduction
- Espresso Testing - Home
Espresso Testing Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Espresso Testing Framework - WebView
通常情况下,测试Web<>/i>是一个挑战,因为它使用超文本技术处理用户接口要素,而不是使用本地用户界面/概览。 该领域的Espresso excels,向网络匹配者和网络断言提供一套新设备,这些设备与土著观点匹配者和观点相类似。 与此同时,它还提供了一种平衡的方法,包括一个基于网络技术的测试环境。
Espresso网
标准网络测试说明喜欢以下代码:
onWebView() .withElement(Atom) .perform(Atom) .check(WebAssertion)
这里
onWebView()——类似于在(......)意见中,它暴露了一套对网上意见进行测试的预报。
withElement(- 在网页上使用原子和回归的互联网用户物体查找网络要素所使用的几种方法之一,类似于“观点间行动”。
perform() 介绍使用原子和网络交换器在网页上采取的行动。
check() 这是使用网络工具的必要说法。
抽样网络测试代码如下:
onWebView() .withElement(findElement(Locator.ID, "apple")) .check(webMatches(getText(), containsString("Apple")))
这里
findElement(> 找到一个元素并返回一个原子
Write a Sample Apppcation
让我们根据网上意见撰写一份简单申请,并用onWebView()方法撰写一个测试案例。 2. 采取这些步骤撰写样本申请:
开始陈设室。
创建先前讨论的新项目,名称:MyWebViewApp。
采用Reeq ——Migrate至AndroidX 选项菜单。
在AndroidManifest.xml文档中添加以下配置选择,允许上网。
<uses-permission android:name = "android.permission.INTERNET" />
提供Espresso网络是一个单独的缩略语。 因此,在 app中增加依赖性。 梯度和yn。
dependencies { androidTestImplementation androidx.test:rules:1.1.1 androidTestImplementation androidx.test.espresso:espresso-web:3.1.1 }
删除主要活动中的缺省设计,并增加网上电文。 活动内容如下:
<?xml version = "1.0" encoding = "utf-8"?> <RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android" xmlns:app = "http://schemas.android.com/apk/res-auto" xmlns:tools = "http://schemas.android.com/tools" android:layout_width = "match_parent" android:layout_height = "match_parent" tools:context = ".MainActivity"> <WebView android:id = "@+id/web_view_test" android:layout_width = "fill_parent" android:layout_height = "fill_parent" /> </RelativeLayout>
设立一个新的班级:Ex 预期WebViewCpent 超过WebView ;否则,它将在申请之外开辟一个新的浏览器窗口。 网址:MainActative.java。
private class ExtendedWebViewCpent extends WebViewCpent { @Override pubpc boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }
现在,在MainActative的计算法中添加以下代码。 该守则的目的是找到Web <>/i>,适当配置该文本,然后最后装上指标。
// Find web view WebView webView = (WebView) findViewById(R.id.web_view_test); // set web view cpent webView.setWebViewCpent(new ExtendedWebViewCpent()); // Clear cache webView.clearCache(true); // load Url webView.loadUrl("http://<your domain or IP>/index.html");
这里
index.html。 如下:
<html> <head> <title>Android Web View Sample</title> </head> <body> <h1>Fruits</h1> <ol> <p><a href = "apple.html" id = "apple">Apple</a></p> <p><a href = "banana.html" id = "banana">Banana</a></p> </ol> </body> </html>
apple.html>。 见index.html。 如下:
<html> <head> <title>Android Web View Sample</title> </head> <body> <h1>Apple</h1> </body> </html>
banana.html>。 见banana.html。 页: 1
<html> <head> <title>Android Web View Sample</title> </head> <body> <h1>Banana</h1> </body> </html>
Placeindex.html, apple.html and banana.html in a web services
替换装货中的舱 乌尔都语法与你的组合。
现在,如果所有物品都罚款,将进行申请和人工检查。 下面是WebView 申请样本>的屏幕。
现在,开放ExampleInstrumented Test.java 档案和添加以下规则:
@Rule pubpc ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<MainActivity>(MainActivity.class, false, true) { @Override protected void afterActivityLaunched() { onWebView(withId(R.id.web_view_test)).forceJavascriptEnabled(); } };
这里 we found the WebView and enabled JavaScript of the WebView because espresso web testing framework works exclusively through JavaScript engine to identify and manipulate web element.
现在,在测试我们的Web及其行为时添加试验案例。
@Test pubpc void webViewTest(){ onWebView() .withElement(findElement(Locator.ID, "apple")) .check(webMatches(getText(), containsString("Apple"))) .perform(webCpck()) .withElement(findElement(Locator.TAG_NAME, "h1")) .check(webMatches(getText(), containsString("Apple"))); }
这里 the testing was done in the following order,
发现链接apple。 采用findElement()和Locator.ID查点。
webMatches () 方法
对该链接进行点击。 开放网页apple.html。
再度发现使用发现方法的h1元素和Locator.TAG_NAME 点数。
最后,使用webMatches()方法再次检查h1的标签。
最后,使用海底演播室环境菜单进行测试。