appium+docker 自动化测试
2020-07-21 本文已影响0人
wwq2020
简介
本文和上文[https://www.jianshu.com/p/e859bede7761]的区别在于,都是命令行操作的,意味着可以自动化,上文创建 avd 等部分是手动的
准备
安装 docker(省略)
准备模拟器环境
这边也可以做个 docker 镜像
安装安卓 sdk
创建 avd
avdmanager create avd -n avdtest -k "system-images;android-28;google_apis;x86"
运行 avd
emulator -avd avdtest
运行一个 proxy(因为 emulator 运行的 avd 监听的是 localhost,可以使用其他反向代理)
这里写个简单代码 proxy.go
package main
import (
"io"
"net"
)
func main() {
ln, err := net.Listen("tcp", ":5553")
if err != nil {
panic(err)
}
for {
conn, err := ln.Accept()
if err != nil {
panic(err)
}
go serve(conn)
}
}
func serve(src net.Conn) {
dst, err := net.Dial("tcp", "127.0.0.1:5555")
if err != nil {
panic(err)
}
go io.Copy(src, dst)
go io.Copy(dst, src)
}
运行 proxy
go run proxy.go
准备 appium 环境
10.105.16.166 为目标 ip
/data 是 apk 的位置
docker run -d -p 4723:4723 -e REMOTE_ADB=true -e ANDROID_DEVICES=10.105.16.166:5553 -e REMOTE_ADB_POLLING_SEC=3 -v /data:/data --name container-appium appium/appium
测试
提示
安卓模拟器相关:
可以从https://developer.android.com/studio#downloads下载(Command line tools only)
查看
./bin/sdkmanager --list --sdk_root=/path/to/lib
安装 platform-tools
./bin/sdkmanager --sdk_root=/path/to/lib "platform-tools" "platforms;android-28"
安装 emulator
./bin/sdkmanager --sdk_root=/path/to/lib emulator