MAC 搭建自动化测试环境(基于Appium+python+ios/android+unnitest+HTMLTestRunner)(一)
来源:互联网 发布:淘宝中心网页版登录 编辑:程序博客网 时间:2024/05/15 09:31
之前一直都是用windows搭建系统进行的测试,现在用的MAC比较多,在搭建的同时顺手记录下
之前已经安装了SDKManager及Python27,以下内容基于已安装上述软件
一:安装brew
1.安装brew
/usr/bin/ruby -e"$(curl -fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"
2.查看brew安装是否成功
3.安装软件git实验是否brew安装成功,git也可以管理脚本
二:安装node (appium的支持)
1.安装appium,第一次安装不成功,实验用翻墙安装
npm --registryhttp://registry.cnpmjs.org install -g appium
2.appium安装成功
3.运行appium-doctor
查了下需要安装wd
4.安装wd
npm --registry http://registry.npm.taobao.org install -g wd
5.由于appium-doctor 总报错,就查了下,appium 1.5以后需要单独安装,于是
npm install appium-doctor –g 安装,安装后重新打开命令行,运行appium-doctor ,
提示
三.配置Appium环境变量
从上图可以看到看到5个报错,有四个是跟android_home相关的,先解决它
1.打开配置文件 >touch .bash_profile
>open -e .bash_profile
2.编辑配置文件
输入配置的环境变量
ANDROID_HOME=~/Library/Android/sdk
export ANDROID_HOME
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools,保存并退出
3.立即生效,命令行“>source /etc/bashrc”
4.安装Carthage,这是一个ios的依赖管理工具,轻便,简介,低耦合,不用修改xcode配置
重新打开命令行窗口,运行appium-doctor
ok
四.配置HTMLTestRunner
1.下载HTMLTestRunner
http://tungwaiyip.info/software/HTMLTestRunner.html
2.在命令行运行python
我的是将文件放到红线的路径下,import HTMLTestRunner,没有报错,表示配置完成
五.脚本试运行
1.部分脚本
#_*_coding=utf-8_*_import osfrom time import sleepimport HTMLTestRunnerimport unittestfrom appium import webdriverclass Login(unittest.TestCase): def setUp(self): desired_caps = {} desired_caps['platformName'] = 'Android' desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '6.0' desired_caps['deviceName'] = 'PBV5T16928003673' desired_caps['appPackage'] = '自己的包名' desired_caps['appActivity'] = 'activity' self.driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps) self.driver.implicitly_wait(2) # 跳过展示页 try: ima1=self.driver.find_element_by_class_name("android.widget.ImageView") if ima1: self.driver.swipe(1000,1500,200,1500,1000) self.driver.implicitly_wait(5) ima2=self.driver.find_element_by_class_name("android.widget.ImageView") if ima2: self.driver.swipe(1000,1500,200,1500,1000) self.driver.implicitly_wait(5) ima3=self.driver.find_element_by_class_name("android.widget.ImageView").click() except Exception,e : print e # 设置权限 self.driver.implicitly_wait(10) self.driver.find_element_by_id("com.xihe.moblie.credit:id/goto_settings").click() self.driver.implicitly_wait(20) self.driver.find_element_by_id("com.android.packageinstaller:id/permission_allow_button").click() self.driver.implicitly_wait(20) self.driver.find_element_by_id("com.android.packageinstaller:id/permission_allow_button").click() self.driver.implicitly_wait(20) self.driver.find_element_by_id("com.android.packageinstaller:id/permission_allow_button").click() self.driver.implicitly_wait(20) def test_login(self): try: el = self.driver.find_element_by_id("com.xihe.moblie.credit:id/ll_homeme") if el: el.click() except Exception,e : print 'an element could not find' print e sleep(5) self.driver.find_element_by_id("com.xihe.moblie.credit:id/et_account").send_keys('自己的手机号') self.driver.implicitly_wait(10) self.driver.find_element_by_id("com.xihe.moblie.credit:id/et_password").send_keys('密码') self.driver.implicitly_wait(10) self.driver.find_element_by_id("com.xihe.moblie.credit:id/btn_send_data").click() a= self.driver.find_element_by_id("com.xihe.moblie.credit:id/tv_loan_history") b=self.driver.find_element_by_id("com.xihe.moblie.credit:id/tv_instructions") self.assertEquals(a.text,u'借款记录') self.assertIn(u'验证是否是自己的名字',b.text) sleep(10) def test_logout(self): try: self.test_login() self.driver.find_element_by_id("com.xihe.moblie.credit:id/ll_homeme").click() self.driver.implicitly_wait(5) self.driver.find_element_by_id("com.xihe.moblie.credit:id/ll_seting").click() self.driver.implicitly_wait(5) self.driver.find_element_by_id("com.xihe.moblie.credit:id/btn_out_user").click() self.driver.implicitly_wait(5) e=self.driver.find_element_by_id("com.xihe.moblie.credit:id/tv_application_amount").text self.assertEqual('500',e) except Exception,e: print e def tearDown(self): self.driver.quit()if __name__ =='__main__': # suite = unittest.TestLoader().loadTestsFromTestCase(Login) # unittest.TextTestRunner(verbosity=2).run(suite) # # suite=unittest.makeSuite(DemoPage) #构造测试集 def suite(): suite = unittest.TestSuite() suite.addTest(Login("test_login")) suite.addTest(Login("test_logout")) return suite #定义报告存放路径,支持相对路径 filename = "result.html" fp = file(filename,'wb') #定义测试报告 runner = HTMLTestRunner.HTMLTestRunner( stream = fp, title = u'薪动钱包测试报告', description = u' 用例执行情况:' ) #运行测试用例 runner.run(suite()) fp.close()2.运行脚本提示no module named appium
解决方案
在命令行运行
cd /usr/local/bin
pipinstall Appium-Python-Clien
3.生成的报告截图
我将在下一篇中介绍如何后续的功能:
1.通过svn获取安装包并安装在手机(安卓)
2.测试报告生成并自动发送至指定邮箱
3.如何用appium同时运行安卓和iOS两个平台的应用
- MAC 搭建自动化测试环境(基于Appium+python+ios/android+unnitest+HTMLTestRunner)(一)
- 搭建Appium自动化测试平台环境(基于python&android)
- Appium+Python自动化测试(一)--环境搭建
- windows 下 android 自动化测试环境搭建(appium+python)
- Appium+python Android自动化测试环境搭建
- 接口自动化测试环境搭建(unittest+requests+HTMLTestRunner)
- mac上搭建appium+IOS自动化测试环境
- python自动化测试unittest+selenium+HTMLTestRunner(一)
- win7上搭建android开发环境使用appium自动化测试android应用(一)
- Mac上基于Xcode 8.3.2, iOS 10.3(模拟器)搭建Appium 1.6.5 测试环境
- Mac下搭建appium自动化测试环境
- Robot + Appium 搭建 iOS 自动化测试环境
- appium+python 自动化测试环境搭建
- Python + Appium 自动化测试环境搭建
- Appium自动化测试一、环境搭建AppuimForWindows
- appium自动化测试环境搭建和demo测试(python版本)
- Mac appium 自动化环境搭建
- mac+Appium+java+IOS 自动化测试环境搭建
- 【多校训练】hdu 6043 KazaQ's Socks
- 第九章:django开发中发送邮件
- maven依赖本地非repository中的jar包
- Java知识:JVM内存模型的简单认识
- 大型网站架构模式
- MAC 搭建自动化测试环境(基于Appium+python+ios/android+unnitest+HTMLTestRunner)(一)
- oracle v$database 视图
- Pandas DataFrame 去重
- 23种设计模式之-抽象工厂模式
- 快速功能点方法应用示例
- windows下thrift的安装(一)
- FFT&&FWT&&NTT
- 红黑树介绍
- python链接MySQLdb报错:2003