哇,厉害了 testerhome
那就是@264768502 同学所说的-g 命令,一个意思
暂时没有用到 keyevent,这其实应该简单的吧,使用 appium 的话,就需要把消息发到 ui2.0 的 server 上(即手机端安装的 2.0 apk)这条路通了的话,基本上的就成了,然后哪边有问题就解决好了。
另外也可以直接在 ui2.0 的 server 中加一个 get 请求的 URL,然后 PC 端使用 httpclient 发到http://url:8200
这个端口可以执行 adb forward --list 拿到
以上都 不会的话就直接调 adb 命令执行吧
哇噢,好厉害
最后一段代码就是啊
搜索一下本站,appium uiautomator2
appium 也是通过 adb 或 pm 命令装上去的,可以从这两个命令入手
法一:让开发加日志
法二:可以对比截图当前截图与目标截图
法三:根据 dumpsys 信息,可以判断,具体信息是啥忘记了
我更新了下,另外要配合 ui2.0server 端的修改才可以自动点击弹窗
从原来的位置剪切到新的位置
可以招一两个人,把现有的稳定的事情分下去,自己再学习新技能啊,性能测试,安全测试,大数据,机器学习什么的。一个什么都不会的人只能这么瞎 YY 了
填完坑了,能把这个帖子给完善一下方便需要的同学就好了
会这么多还说不知道自己擅长什么,让什么也不会的人情何以堪……
收到咯,谢谢
请携夫人一同到场
已发,请帮忙 CHECK 下,感谢
我要怎样私发?你的 testerhome 主页没有公开邮箱,还是直接回复公众号就可以?我的邮箱是 bauul@126.com
28 号早上 9 点一刻就报名了,也没收到邮件,感觉透明程度比较低,失望
不是这个原因噢,
buildscript {
repositories {
jcenter()
maven { url 'https://jitpack.io' }
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
//classpath 'com.github.JakeWharton:sdk-manager-plugin:0ce4cdf08009d79223850a59959d9d6e774d0f77'
}
}
//apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.application'
// optionally including an emulator
//sdkManager {
// emulatorVersion 'android-23'
// emulatorArchitecture 'x86' // optional, defaults to arm
//}
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "io.appium.uiautomator2"
minSdkVersion 18
targetSdkVersion 25
versionCode 1
archivesBaseName = "appium-uiautomator2"
/**
* versionName should be updated and inline with version in package.json for every npm release.
*/
versionName "0.1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
debug {
debuggable true
}
customDebuggableBuildType {
debuggable true
}
applicationVariants.all { variant ->
appendVersionNameVersionCode(variant, defaultConfig)
}
}
lintOptions {
abortOnError false
}
productFlavors {
e2eTest {
applicationId 'io.appium.uiautomator2.e2etest'
}
server {
applicationId 'io.appium.uiautomator2.server'
}
}
packagingOptions {
exclude 'META-INF/maven/com.google.guava/guava/pom.properties'
exclude 'META-INF/maven/com.google.guava/guava/pom.xml'
}
useLibrary 'org.apache.http.legacy'
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'io.netty:netty-all:4.0.41.Final'
compile 'com.jayway.jsonpath:json-path:0.8.1'
compile 'com.squareup.okhttp:okhttp:2.5.0'
compile 'com.android.support.test:runner:0.5'
compile 'com.android.support:support-annotations:25.1.0'
compile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
androidTestCompile 'junit:junit:4.12'
androidTestCompile 'com.android.support:support-annotations:25.1.0'
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
androidTestCompile 'com.android.support.test.espresso:espresso-web:2.2.2'
}
task installAUT(type: Exec) {
group = 'test'
description = 'Install app under test'
def adb = android.getAdbExe().toString()
def apk = file('../app/src/androidTestE2eTest/java/io/appium/uiautomator2/unittest/resource/ApiDemos-debug.apk')
commandLine "$adb install -rg $apk".split(' ')
standardOutput = new ByteArrayOutputStream()
ext.output = {
return standardOutput.toString()
}
println ext.output.toString()
}
afterEvaluate {
tasks.each { task ->
if (task.name.startsWith('connectedE2eTestDebugAndroidTest')) {
task.dependsOn installAUT
}
}
}
def appendVersionNameVersionCode(variant, defaultConfig) {
variant.outputs.each { output ->
def file = output.packageApplication.outputFile
def fileName = file.name.replace("debug.apk", "v${defaultConfig.versionName}.apk")
output.packageApplication.outputFile = new File(file.parent, fileName)
}
}
pm list instrumentation 可以列出已安装的测试包
能有个 demo 就好了
apk 的名字和我提供的两个完全一致吗?另外可以先把手机中已有的应用 卸载掉,再试一下
你打包的方式导致的吧,确认文件名如下:
appium-uiautomator2-server-v0.1.0.apk
appium-uiautomator2-server-debug-androidTest.apk
在目录:
appium\node_modules\appium-uiautomator2-driver\uiautomator2
这会儿还没联系的,是不是表示报名失败了?