2015-06-04 14:07:06 youxiansanren 阅读数 10221
  • app功能测试

    很快学会Appium的使用 功能自动化脚本的编写 app性能测试的实际运用

    28327课时 0分钟 44人学习 赵晓希
    免费试看

一、下载例子

点击下载测试例子:sample   下载完成后,解压。

二、启动appium

1、appium介绍


 


2、python脚本介绍

从终端进入:cd Downloads/samplecode-master/sample-code/examples/python目录下,查看 python ios_simple.py。


可以发现python脚本中的desired-capabilities设置了以下几个参数:

app:应用的绝对路径,注意一定是绝对路径。如果指定了appPackage和appActivity的话,这个属性是可以不设置的。另外这个属性和browserName属性是冲突的。
platformName:测试移动端,ios还是Android;
platformVersion:启动设备的版本号,比如此处的ios 8.3
deviceName:启动设备类型,真机测试还是模拟器测试;


3、配置appium

点击appium上的ios图标,出现ios settings弹框;

app path是需要测试app的地址,点击choose选择;
BundleID是该app的唯一识别id,xcode中可以看到;
Force Device是测试移动端的设备型号;
Platform是设备系统版本号;

UDID是设备的唯一识别号,如果需要在真机上测试,在iTunes中可以查询到设备的UDID号;本次使用模拟器测试,不用勾选UDID;

需注意:IOS Settings中的参数需要与python测试脚本中的参数一致,不然运行python测试脚本时,会出现如下错误:


4、启动appium,点击launch启动;


5、运行python测试脚本

从终端进入 :cd Downloads/samplecode-master/sample-code/apps/TestApp,目录下通过如下命令编译生成示例程序:xcodebuild -sdk iphonesimulator, 当看到**BUILD SUCCEEDED**则说明编译成功;

这行命令在TestApp项目底下创建了一个build/Release-iphonesimulator目录,并且生成了一个可以透过Appium服务器交流的.app封装包。

从终端进入:cd Downloads/samplecode-master/sample-code/examples/python目录下,然后在appium运行的情况下输入:python ios_simple.py.

运行成功以后,会自动打开模拟器,执行测试脚本,执行两个用例,一个是侧滑效果,一个是计算求和。执行完成以后,会在终端中提示执行脚本成功;



5、打开appium inspector

点击appium上的inspector按钮,会打开appium inspector, 可以录制脚本;




2018-05-14 20:35:27 weixin_35825766 阅读数 2428
  • app功能测试

    很快学会Appium的使用 功能自动化脚本的编写 app性能测试的实际运用

    28327课时 0分钟 44人学习 赵晓希
    免费试看

1、安装依赖库

brew install libimobiledevice --HEAD


npm install -g ios-deploy



注:如果没有安装 libimobiledevice,会导致Appium无法连接到iOS的设备,所以必须要安装,如果要在iOS10+的系统上使用appium,则需要安装ios-deploy


安装出现问题

DEEPbing:~ ewrwrw$ npm install -g ios-deploy

> ios-deploy@1.9.2 preinstall /usr/local/lib/node_modules/ios-deploy

> ./src/scripts/check_reqs.js && xcodebuild

stderr: xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

npm ERR! code ELIFECYCLE

npm ERR! errno 1

npm ERR! ios-deploy@1.9.2 preinstall: `./src/scripts/check_reqs.js && xcodebuild`

npm ERR! Exit status 1

npm ERR! 

npm ERR! Failed at the ios-deploy@1.9.2 preinstall script.

npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:

npm ERR!     /Users/xiaoyezi/.npm/_logs/2018-05-14T12_32_53_678Z-debug.log

解决:原因xcode升级,文件默认路径改变:

运行:sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

在执行:sudo npm install -g ios-deploy --unsafe-perm=true


2、如果已安装appium-doctor忽略

npm install appium-doctor -g


3、
安装后执行

appium-doctor --ios


指令,可以查看与iOS相关配置是否完整,下图是全部配置都成功,如果有那一项是打叉的,则进行安装就可以了

例如:

brew install carthage

4、更新Appium中的WebDriverAgent

WebDriverAgent下载最新版本的WebDriverAgent进入下载后的WebDriverAgent文件执行 命令
$ cd /Users/XXXX/git/WebDriverAgent
$ mkdir -p Resources/WebDriverAgent.bundle$ sh ./Scripts/bootstrap.sh

直接用Xcode打开WebDriverAgent.xcodepro文件配置WebDriverAgentLibWebDriverAgentRunner的证书

添加team

如果是免费版的个人证书,还需要修改下WebDriverAgent的BundleID,随便加点后缀,只要不跟其他人的重名就好 (注:一定设置好这个,有开发者证书就不需要了)

OK配置完成,运行


2015-09-27 16:26:50 iosswift 阅读数 12610
  • app功能测试

    很快学会Appium的使用 功能自动化脚本的编写 app性能测试的实际运用

    28327课时 0分钟 44人学习 赵晓希
    免费试看

Appium下载与安装

关于Appium:

详细介绍见Appium官方网站:http://appium.io

安装步骤:

  1. 安装node.js&npm
  2. 安装Appium
  3. 安装Selenium WebDriver

网上有很多关于Appium安装的教程,这里就不再详述。

http://www.cnblogs.com/enjoytesting/p/3513637.html

检查Appium安装环境:

打开Appium,点击诊断图标


通过Appium doctor检查安装环境,如果没有安装xcode command line tools,appium会自动安装。

安装成功后,如下图所示,(ps:主要用于iOS自动化测试,只需保证iOS检查通过即可)



Appium自动化测试——模拟器

1.在xcode中运行代码,生成.app文件

ps:运行时要注意,模拟器及系统版本

2.配置iOS设置

点击苹果图标,设置app path(第1步生成的.app文件的路径),设置force device和platform version(两者要与第1步中的设置保持一致)。


3.录制脚本,生成python脚本

点击launch按钮,然后点击放大镜图标


即可启动iOS模拟器,并弹出appium inspector窗口

点击record开始录制python脚本。

在UIAWindow中找到相应的界面元素,及并执行相应操作

例如:在TextField1中输入23,在TextField2中输入78,点Compute Sum计算结果


生成的python脚本如下:

from selenium.webdriver.firefox.webdriver import WebDriver
from selenium.webdriver.common.action_chains import ActionChains
import time

success = True
desired_caps = {}
desired_caps['appium-version'] = '1.0'
desired_caps['platformName'] = 'iOS'
desired_caps['platformVersion'] = '8.0'
desired_caps['deviceName'] = 'iPhone 6'
desired_caps['app'] = os.path.abspath('/Users/liuyan/Desktop/ios-test-app-master/Build/Products/Debug-iphonesimulator/TestApp.app')

wd = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desired_caps)
wd.implicitly_wait(60)

def is_alert_present(wd):
	try:
		wd.switch_to_alert().text
		return True
	except:
		return False

try:
	wd.find_element_by_name("TextField1").send_keys("23")
	wd.find_element_by_name("TextField2").send_keys("78")
	wd.find_element_by_name("ComputeSumButton").click()
finally:
	wd.quit()
	if not success:
		raise Exception("Test failed.")
但是appium生成的python脚本不能直接运行,需要添加引用

from selenium import webdriver
import os

4.关闭iOS模拟器和appium  inspector窗口

一定要关闭iOS模拟器和appium  inspector窗口!!!

一定要关闭iOS模拟器和appium  inspector窗口!!!

一定要关闭iOS模拟器和appium  inspector窗口!!!

重要的事情说三遍,否则python脚本不能运行

5.运行Python脚本,进行自动化测试

打开终端,cd到.py文件位置,执行Python脚本


此时,iOS模拟器将自动打开,并开始执行测试脚本。

如果要测试多个不同的iOS设备、iOS系统版本,只需要更改python脚本中的相应设置即可,省去了大量的重复劳动


Appium自动化测试——真机测试

真机测试与iOS模拟器步骤基本一致。

1.通过xcode将测试app烧录至真机

2.配置iOS设置

配置bundleID和UDID


3,4,5步骤与模拟器一致

appium 问题总结

1.NameError: name 'os' is not defined

出现这个错误是因为我们的脚本中调用os的方法却没引入os对应的库

解决方法:只需在脚本文件中添加引用:import os

2.NameError: name 'webdriver' is not defined

这个问题我们依照错误1中添加引用: import webdriver

结果又出现另一个错误

ImportError: No module named webdriver

没有名叫webdriver的模块,由from selenium.webdriver.firefox.webdriver import WebDriver可知,webdriver应该是源自selenium

解决方法:添加引用from selenium import webdriver

3.selenium.common.exceptions.WebDriverException: Message: A new session could not be created. (Original error: Requested a new session but one was in progress)

出现这个错误是因为同时启动两个事务,一个是appium inspector,另一个是python demo.py

解决方法:关闭appium inspector即可运行py脚本

4.urllib2.URLError: <urlopen error [Errno 61] Connection refused>

出现这个错误是因为没有启动appium,导致http://127.0.0.1:4723/wd/hub 不能访问

解决方法:启动appium,并重新launch 测试app,此时http://127.0.0.1:4723/wd/hub 即可访问

5.Failed to start an Appium session, err was: Error: Could not initialize ideviceinstaller; make sure it is installed and works on your system

出现这个错误是因为没有安装ideviceinstaller

解决方法:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

brew install ideviceinstaller

6.真机测试时,出现app闪退问题

解决方法:在设置-》开发者-》Enable UI Automation 为yes


2018-06-09 20:00:00 yjs_13597468160 阅读数 15896
  • app功能测试

    很快学会Appium的使用 功能自动化脚本的编写 app性能测试的实际运用

    28327课时 0分钟 44人学习 赵晓希
    免费试看

使用Appium进行iOS的真机自动化测试

安装类库

Homebrew

如果没有安装过Homebrew,先安装 [ homebrew ]

npm

如果没有安装npm,请移步 [ node.js和npm安装 ]

安装依赖库

brew install libimobiledevice --HEAD
sudo npm install -g ios-deploy --unsafe-perm=true

如果执行sudo npm install -g ios-deploy --unsafe-perm=true报错,执行sudo xcode-select --switch/Applications/Xcode.app/Contents/Developer/

如果没有安装 libimobiledevice,会导致Appium无法连接到iOS的设备,所以必须要安装,如果要在iOS10+的系统上使用appium,则需要安装ios-deploy
appium-doctor 安装

npm install appium-doctor -g

安装后执行appium-doctor –ios指令,可以查看与iOS相关配置是否完整,下图是全部配置都成功,如果出现有一项不正确在执行一次就可以,或者直接跳过

appium-doctor –ios

这里写图片描述

更新Appium中的WebDriverAgent
  • 到WebDriverAgent下载最新版本的WebDriverAgent
  • cd 进入下载后的WebDriverAgent文件
  • 执行 ./Scripts/bootstrap.sh
  • 直接用Xcode打开WebDriverAgent.xcodepro文件
  • 配置WebDriverAgentLib和WebDriverAgentRunner的证书
    这里写图片描述
  • 连接并选择自己的iOS设备,然后按Cmd+U,或是点击Product->Test
  • 运行成功时,在Xcode控制台应该可以打印出一个Ip地址和端口号这里写图片描述
  • 在网址上输入http://192.168.2.101:8100/status,如果网页显示了一些json格式的数据,说明运行成功。
    这里写图片描述
  • 进入到Appium中的WebDriverAgent目录,目录路径如下/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/
  • 将自己下载并编译后的WebDriverAgent替换Appium原有的WebDriverAgent

在Appium-Desktop下载传送门中下载最新版本的Appium-Desktop
  • 运行Appium-Desktop
    这里写图片描述
  • 开启start server
    这里写图片描述
  • 点击start new session并且在Desired Capabilities 中输入相关的参数后点击Start Session
    这里写图片描述
  • 运行成功后,会弹出一个控制界面,在该界面中可以控制手机上正在运行的程序
    这里写图片描述
利用Appium-Python-Client进行iOS的自动化测试
开始自动化测试
  • 打开下载后的appiumSimpleDemo文件,打开appiumSimpleDemo.xcodepro程序,配置下TARGET的签名
  • 在appiumSimpleDemo的根目录执行编译指令,编译出一个app文件xcodebuild -sdk iphoneos -target appiumSimpleDemo -configuration Release,编译成功后app文件的地址会打印在命令行中
    这里写图片描述

  • 配置python文件

    打开appiumSimpleDemo中的appiumSimpleDemo.py文件,将,修改setup中的几个参数,将app的路径,设备的相关信息修改成当前连接设备的信息。

如果执行appiumSimpleDemo.py报错File"/usr/local/Cellar/python@2/2.7.15/Frameworks/Python.framework/Versions请升级python版本,如果你是iOS开发人员,请谨慎,升级python有可能是Xcode无法打包参考文稿

这里写图片描述

参考链接

https://www.jianshu.com/p/ae8846736dba
https://github.com/zhshijie/appiumSimpleDemo
https://github.com/appium/appium-desktop/releases/tag/v1.2.0-beta.1
https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450141843488beddae2a1044cab5acb5125baf0882000
https://blog.csdn.net/iosswift/article/details/48765993
2016-01-18 17:36:37 qxb568 阅读数 0
  • app功能测试

    很快学会Appium的使用 功能自动化脚本的编写 app性能测试的实际运用

    28327课时 0分钟 44人学习 赵晓希
    免费试看

操作步骤

1.使用xcode建立你的测试APP并且build出真机或者模拟器的.app文件
真机测试和模拟器测试使用的app是不一样的,在你的测试脚本里面注意使用对应的.app文件
这里写图片描述

另外如果是真机测试,在build时需要设置签名和对应的PP文件
这里写图片描述

2.使用Eclipse建立测试junit测试脚本
以下是一个使用Maven构建的可以在Amazon Device Farm上使用的测试脚本:http://download.csdn.net/detail/qxb568/9410821

3.启动Appium,设置相关参数后,启动Server
在Appium中确保使用了:native-instruments-lib,在以下两个地方都可以启用这个设置:
这里写图片描述
这里写图片描述

4.启动junit进行测试

Native APP

Native APP的元素我们可以用Appium Inspector(下图中的放大镜按钮)来取得
这里写图片描述
注意启动inspector之前先要设置APP Path和设备名称、版本,否则它不知道该用什么来测试
这里写图片描述
启动成功之后,就可以看到下面的界面,元素的查找就会很简单了
这里写图片描述

Hybrid APP

Hybrid APP在查找元素之前,我们先要切换到WebView的上下文
元素的查找方面推荐使用cssSelector的方式

Set<String> contexts = driver.getContextHandles();
for (String contextName : contexts) {
   System.out.println(contextName);
   if (contextName.contains("WEBVIEW")){
     driver.context(contextName);
   }
 }