APP自動化測試腳本2
package com.lemon.day01;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
public class APPTest2 {
AppiumDriver<WebElement> driver;
@BeforeMethod
public void beforeMethod() throws MalformedURLException{
//1;添加配置
//手工:找到设备、APP、APP某个页面
DesiredCapabilities desiredcapabilities = new DesiredCapabilities();
desiredcapabilities.setCapability("deviceName","127.0.0.1:52001");//设备名
desiredcapabilities.setCapability("appPackage","com.tencent.mm");//app包,区别我们每台设备的app
//使用命令:adb shell dumpsys activity | find "mFocusedActivity"
desiredcapabilities.setCapability("appActivity","com.tencent.mm.ui.LauncherUI");//指定页面
//2;创建驱动
//remoteAddress:远程url地址
//desiredCapablites :这个驱动期望得到的能力
URL remoteAddress = new URL("http://127.0.0.1:4723/wd/hub");//固定不变的
driver = new AndroidDriver<WebElement>(remoteAddress,desiredcapabilities);
}
@Test(dataProvider = "testDatas")
//拿到数据提供者的数据,循环这个二维数组,提取元素(一维数组),会把一维数组中的每个元素依次注入到形式参数里
//可以把数据提供者的数据注入到测试方法的形式参数里
public void TestCase(String nickName,String mobilPhone,String pwd ) throws MalformedURLException, InterruptedException {
//3;找到页面元素
//自动化:程序自动定位到页面元素
Thread.sleep(10000);
WebElement registerBtn = driver.findElement(By.id("d36"));
Thread.sleep(10000);
registerBtn.click();
Thread.sleep(1000);
//4;操作页面元素来模拟用户操作
//测试用例,进入注册页面,如 昵称、手机号、密码都不输入的情况,然后点击注册
List<WebElement> elements = driver.findElements(By.id("ht"));
// WebElement nickNameInput = driver.findElement(By.id("ht"));
//nickNameInput.sendKeys("");//输入字符串
elements.get(0).sendKeys(nickName);
// WebElement mobilPhoneInput = driver.findElement(By.id("ht"));
// mobilPhoneInput.sendKeys("");
elements.get(1).sendKeys(mobilPhone);
// WebElement pwdInput = driver.findElement(By.id("ht"));
//pwdInput.sendKeys("");
elements.get(2).sendKeys(pwd);
WebElement registerBtnn = driver.findElement(By.id("cw1"));
boolean isEnabled = registerBtnn.isEnabled();//是否被激活
Assert.assertFalse(isEnabled);//断言判断是否可以点击
driver.quit();
}
@DataProvider
public Object[][] testDatas(){
//int[] array1 = {1,2,3,4};//静态数组
Object[][] datas = {{"","",""},{"shashe","",""},{"shashe","15111917843",""}};
return datas;
}
}
APP自動化測試腳本2的更多相关文章
- APP自動化測試腳本3
package com.lemon.day01; import java.net.MalformedURLException; import java.net.URL; import java.uti ...
- APP自動化測試腳本1
package com.lemon.day01; import java.net.MalformedURLException; import java.net.URL; import java.uti ...
- Selenium自動化測試(Python+VS2013)-基礎篇-環境安裝
Python+VS2013環境安裝 http://www.cnblogs.com/aehyok/p/3986168.html PTVS: http://microsoft.github.io/PTVS ...
- PCB電路板為何要有測試點?
對學電子的人來說,在電路板上設置測試點(test point)是在自然不過的事了,可是對學機械的人來說,測試點是什麼?可能多還有點一頭霧水了.我記得我第一次進電子組裝廠工作當製程工程師的時候,還曾經為 ...
- ASP.NET MVC 單元測試系列
ASP.NET MVC 單元測試系列 (7):Visual Studio Unit Test 透過 Visual Studio 裡的整合開發環境 (IDE) 結合單元測試開發是再便利不過的了,在 Vi ...
- Postman - 測試 API 的好工具
POSTMAN in Google APP Store 因為工作的關係,常常寫一些 API 供 APP 使用.以前傻傻的,每次測試的時候都會自己刻一個 HTML 的表單,一個一個填入 input ,接 ...
- 一起來玩鳥 Starling Framework(2)效能測試以及Image與Texture
上一篇我們放了一個Quad與TextField在舞台上慢慢轉.眼尖的可能會發現轉起來邊緣有點鋸齒,這可以透過設定Starling的反鋸齒來解決,在Main.as裡,新增了_starling之後,可以加 ...
- 測試大型資料表的 Horizontal Partitioning 水平切割
FileGroup 檔案群組 :一個「資料庫(database)」可對應一或多個 FileGroup,一個 FileGroup 可由一或多個 file (.ndf) 構成. FileGroup 可讓 ...
- [转] [Visual Studio 2012] 找回 建立單元測試 選單
原文链接:http://www.dotblogs.com.tw/yc421206/archive/2013/03/08/95920.aspx Step1.建立選單 在VS2012選單,Tools→Cu ...
随机推荐
- 启xin宝app的token算法破解——frida篇(四)
前两篇文章分析该APP的抓包.的逆向: 启xin宝app的token算法破解--抓包分析篇(一) 启xin宝app的token算法破解--逆向篇(二) 启xin宝app的token算法破解--toke ...
- C++中轻量级多线程openmp
关于其概念及使用方法: https://baike.baidu.com/item/openmp/3735430?fr=aladdin
- Flink的Job启动Driver端(源码分析)
整个Flink的Job启动是通过在Driver端通过用户的Envirement的execute()方法将用户的算子转化成StreamGraph,然后得到JobGraph通过远程RPC将这个JobGra ...
- Ribbon实现客户端负载均衡
什么是Ribbon? 客户端负载均衡组件. 前期准备: 搭建一个Eureka集群和一个注册服务 https://www.cnblogs.com/noneplus/p/11374883.html 创建服 ...
- Java线程之线程简介
Java线程之线程简介 一.何谓线程 明为跟踪处理流程,实为跟踪线程 阅读程序时,我们会按处理流程来阅读. 首先执行这条语句 ↓ 然后执行这条语句 ↓ 接着再执行这条语句…… 我们就是按照上面这样的流 ...
- 【数据库】MySQL 函数大全包含示例(涵盖了常用如时间、数字、字符串处理、数据流函数的和一些冷门的)
ps:博客园markdown不能自动生成列表,更好的阅读体验可访问我的个人博客http://www.isspark.com/archives/mysqlFunctionDesc 数学函数(Mathem ...
- Oracle - Sequences
创建计数器 --最小值1,最大值999999999999999999999999999,从1开始,每次自增1,缓存20 --SQL语句: -- Create sequence create seque ...
- 2019 HZNU Winter Training Day 13 Comprehensive Training
A.Jongmah CodeForces-1110D 题意:你在玩一个数字游戏,有一堆写在瓦片上的数字,希望你能组成最多的三元组(三个数字相同,或顺子). 这题用到的方法是动态规划.f[i][j] ...
- lightoj 1060 - nth Permutation(组合数+贪心)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1060 题解:如果是不重复数的这些操作可以用康托展开的逆来求,如果是有重复数字出 ...
- React-Native组件样式合集
最近在阅读RN的文档,但有一点深感遗憾的是——官方对绝大多数RN组件没有用Gif图或者静态图的方式呈现给大家. 所以我通过百度查询,一个一个的查到了这些RN组件的UI表现图,下面呈现给大家 阅前必 ...