导航:首页 > 软件资讯 > 手机app测试怎么连接到真机

手机app测试怎么连接到真机

发布时间:2023-05-13 20:40:35

‘壹’ ios app 如何真机测试

iOS app如果想要进行真机调试,需要有一个开发者账号。如果个人要申请,需要准备一张VISA(美金)信用卡,MASTER(欧元)。
1. 个人的 99$ 申请简单,付钱就行,688人民币
2. 企业的 99$ 申请复杂,需要“邓白氏”认证,可以确认企业是合法有效的,可以管理团队开发
3. 商业的 299$ 也需要邓白氏认证,开发的应用,不能够上架(不经过苹果的审核),专门给企业级用户定制应用程序使用
4.通过开发者账号在苹果开发者网站上申请证书
5.将申请的证书安装到Xcode中,在配置好
6.连接手机,运行是选中手机即可在手机上进行真机模拟

‘贰’ 如何设置android studio让程序运行在真机中

1,在真机中设置USB调试模式打开,具体:“设置”->“应用瞎培程序”->谨晌“开发”->“USB调试”。

2,安装安卓的USB驱动,如果按照不好,那么去下载一个豌豆荚,它会帮你正确安装你的手机驱动。

3,直接运行你要测磨晌唯试的程序,我使用Android Studio,直接点击运行的那个三角号就OK了。

‘叁’ 用android uiautomator做自动化测试,怎么连接真机进行

Google在sdk4.0以后提供了一个自动化解决方案uiautomator:

优点:可以跨应用了;这可是亲生的;

缺点:必须sdk4.0以上版本;要想实现的好,最好有开发配合;java项目编译为jar后需要push到手机才能运行,也就是说必须打印日志暴力调试。

Appium基于Android InstrumentationFramework和UIAutomator,也就是说这个工具是可以跨应用的。说远了,好吧,为了帮大家更容易理解appium的使用,我这里就讲一下uiautomator的使用方法。

你应该有android-sdk吧,升级到4.0以上,进入目录android-sdk ools,你会看到两个文件:

traceview.bat 和 uiautomatorviewer.bat,这俩文件让你想起了monkeyrunner了吧,是的,traceview.bat就对应于hierarchyviewer.bat,用来查看程序的ui界面的,通常也是使用管理员权限启动的。

好了,现在用eclipse创建一个java project,是的,你没看错,是java project不是android project,添加引用:

在project.properties中内容为:

# Project target.

target=android-16

这里的android-16需要和之前的android.jar和uiautomator.jar位置相一致。

然后呢?写代码吧,建立一个类,得,发个给大家参考:

packagecom.uia.example.my;

importorg.apache.http.util.EncodingUtils;

importandroid.graphics.Bitmap;

importandroid.graphics.BitmapFactory;

importandroid.graphics.Rect;

importandroid.os.Environment;

importcom.android.uiautomator.core.UiObject;

importcom.android.uiautomator.core.UiObjectNotFoundException;

importcom.android.uiautomator.core.UiScrollable;

importcom.android.uiautomator.core.UiSelector;

importcom.android.uiautomator.testrunner.UiAutomatorTestCase;

importjava.io.File;

importjava.io.FileOutputStream;

importjava.io.IOException;

{

publicStringsLog;

publicFilefout=null;

=null;

publicvoidwrite2file(String filename,String sData)

{

String sLog="";

//初始化日志文件

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){

sLog = Environment.getExternalStorageDirectory().getAbsolutePath();

try{

fout=newFile(sLog,filename);

outStream=newFileOutputStream(fout,true);//此处的true是append

sData=sData +" ";

outStream.write(sData.getBytes());

outStream.flush();

outStream.close();

fout=null;

}

catch(Exception e){

e.printStackTrace();

}

}else{

System.out.println("该手机没有SD卡");

}

}

publicvoidtestDemo() {

//1.启动app

getUiDevice().pressHome();

UiObject allAppsButton =newUiObject(newUiSelector().description("Apps"));

allAppsButton.clickAndWaitForNewWindow();

UiObject appsTab =newUiObject(newUiSelector().text("Apps"));

appsTab.click();

UiScrollable appViews =newUiScrollable(newUiSelector().scrollable(true));

UiObject settingsApp = appViews.getChildByText(newUiSelector().className(android.widget.TextView.class.getName()),"Efilm");

settingsApp.clickAndWaitForNewWindow();

//2.进入主界面

System.out.println("into main view");

System.out.println(getUiDevice().waitForWindowUpdate("com.eshore.efilm", 60000));

System.out.println("intoed main view");

UiObject tv1 =newUiObject(newUiSelector().text("影院"));

tv1.click();

//3.点击影院

UiObject oyy=newUiObject(newUiSelector().description("cinema_row"));

System.out.println("wait yingyuan come out");

oyy.waitForExists(60000);

System.out.println("yingyuan come out");

oyy.clickAndWaitForNewWindow();

System.out.println("click yingyuan");

//4.场次

UiObject occ=newUiObject(newUiSelector().description("LinearLayout10"));

System.out.println("wait changci come out");

oyy.waitForExists(60000);

System.out.println("changci come out");

occ.clickAndWaitForNewWindow();

System.out.println("click changci");

//5.座位

UiObject oseat=newUiObject(newUiSelector().description("cinema_shows_list_item").index(0).childSelector(newUiSelector().description("LinearLayout10")));

System.out.println("wait seat come out");

oseat.waitForExists(5000);

inth=getUiDevice().getDisplayHeight();

intw=getUiDevice().getDisplayWidth();

System.out.println("(h/2,w/2)="+h/2+","+w/2);

getUiDevice().click(h/2,w/2);

//System.out.println("seat count:"+String.valueOf(oseat.getChildCount()));

//System.out.println("seat getText:"+ oseat.getText());

//截座位图

Process process;

try{

process = Runtime.getRuntime().exec("screencap /mnt/sdcard/EfilmFailSnapShot01.png");

try{

process.waitFor();

}catch(InterruptedException e) {//TODOAuto-generated catch block

e.printStackTrace();

}

}catch(IOException e) {

//TODOAuto-generated catch block

e.printStackTrace();

}

//takeScreenShots("EfilmSeatSnapShot");

}

}

这个例子是随便写的,可能不够严谨。大体就这么个情况吧。下一步就是编译执行了,先插上手机usb接口,然后打开cmd,执行:

找到SDKID,也就是android create中的-t参数:

cd C: PROGRAMandroid-sdk ools

android list

找到t参数的值以后:

cd C: PROGRAMandroid-sdk ools

android create uitest-project -n TAppWorkAssistV1 -t 25 -p C:android自动化Tv2.0TestSetting

cd C:android自动化Tv2.0TestSetting

ant build

cd C:android自动化Tv2.0TestSettingin

adb push TAppWorkAssistV1.jar /data/local/tmp/

adb shell uiautomator runtest TAppWorkAssistV1.jar -c com.uia.example.my. TAppWorkAssistV1

看了看,好像没有什么特别值得解释的

-n TAppWorkAssistV1:类名

-p: 项目所在目录

Ant build 把这个类编译成一个jar包:TAppWorkAssistV1.jar

然后把jar包push到手机上,调用执行这个类就可以了

大致是这么个步骤,不过有一个非常重要的细节,就是如果你需要更省心,就最好把界面元素,无论动态的还是布局文件中的,都加上content-description属性,并保证唯一性,根据:

UiSelector:description(String desc)

Set the search criteria to match thecontent-description property for a widget.

那就可以统一只使用这一个引用界面元素的方法就行了,就不用去想方设法利用其它的属性来引用了。

‘肆’ 如何实现app远程真机debug

首先,准备工作,需要借助如下这个辅助工具。。。

‘伍’ 如何在真机上调试Android应用程序

主要通过以下几个步骤:


1、手机通过数据线连接在电脑上

2、设置android手机为USB调试模式。步骤:menu—> 设置 —> 应用程序 —> 开发 , 选择【USB调试】

3、如果是window系统,系统会提示安装驱动:

7、选中手机设备,点击OK之后,程序就开始在真机上安装了,控制台输出如下信息:

[2011-04-07 22:24:49 - HelloWorld] Uploading HelloWorld.apk onto device ‘HT99YLG11834′
[2011-04-07 22:24:49 - HelloWorld] Installing HelloWorld.apk…
[2011-04-07 22:24:53 - HelloWorld] Success!
[2011-04-07 22:24:53 - HelloWorld] Starting activity com.eightqiu.activity.StatsResultActivity on device
[2011-04-07 22:24:57 - HelloWorld] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.eightqiu.activity/.StatsResultActivity }


8. 设置应用程序为调试模式。操作: 编辑AndroidManifest.xml 增加调试参数android:debuggable="true", 如下:

<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">

9. 执行真机调试操作:ECLIPSE调试对话框中,Target窗口中选择Manual,点击【debug】按钮,选择真机设备,开始调试。

注:不管是否启用ECLIPSE环境,任何Android软件只要在真机上运行发生异常,都可以在命令行窗口下查看具体异常信息:

执行:./adb logcat 可以查看到更多的系统异常消息。在这些消息中要注意查看Caused by:打 头的行,这些行指明了在哪行代码出的错误

10、运行这个应用程序,这样就可以使用手机来测试了

‘陆’ Appium连接真机设置及连接操作

前提:首先在手机上打开app

1.打开appium

2.启动appium Client

首次安装以上过程比较慢,会在手机上安装Appium Setting,Unlock的app,如果遇到坑可以查看之前的文章
https://www.jianshu.com/p/cf1c7413b709

安装以上app的时候盯着手机本身,会有安全提醒,不要被禁用就可以

启动好了就是如下界面

此时手机就能正常弹出taobao的app,所有的页面操作就会投射到appium上面。

尽量保持操作过程中一直开着taobao,appium在进行启动的时候会自动关老稿闭扒含手taobao,然后重新打开。春嫌

如果遇到问题可以留言讨论!

‘柒’ appium中怎么连接android真机测试

启动appium,执行testng测试脚本,脚本启动配置项如下:
import io.appium.java_client.AppiumDriver;import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");//这句不是必须的
capabilities.setCapability("deviceName","Android Emulator");
capabilities.setCapability("platformVersion", "4.4");
capabilities.setCapability("platformName","Android");
capabilities.setCapability("appPackage", "com.android.calculator2");
capabilities.setCapability("appActivity", ".Calculator");
AppiumDriver driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap

阅读全文

与手机app测试怎么连接到真机相关的资料

热点内容
实数四则运算法则概念 浏览:294
cs16优化命令 浏览:869
Minecraft云服务器免费 浏览:826
png压缩最小 浏览:180
老韩综app怎么看不了了 浏览:227
只有一个程序员的体验 浏览:321
用服务器地址怎么有网 浏览:550
路由器服务器昵称是什么 浏览:715
程序员男友消失了 浏览:401
程序员搜索框自动提示 浏览:28
android44api20 浏览:677
adb刷recovery命令 浏览:697
广联达正版加密锁可以补办吗 浏览:945
java程序员一天多少行代码 浏览:948
丧尸危机java 浏览:125
华为手机怎么去除app标记未读信息 浏览:856
java监控文件夹 浏览:807
群控服务器主机怎么转变普通电脑 浏览:707
手机怎么调整app大小 浏览:455
加密门禁卡揭秘 浏览:139