前期做了那么多理论, 现在该开始干活进行实践.
个人比较喜欢python, 而选择appium是因为它可以在Android和IOS平台上使用.
以下是个人练习写得一个脚本, 分享出来, 可以让更多初学者可以借鉴学习.
python
#coding:utf-8
import os
import HTMLTestRunner
import unittest
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
# Returns abs path relative to this file and not cwd
PATH = lambda p: os.path.abspath(
os.path.join(os.path.dirname(__file__), p)
)
class StartPage(unittest.TestCase):
def test_(self):
desired_caps = {}
# 7N2TDM154V061596 192.168.107.101
desired_caps['deviceName'] = '7N2TDM154V061596' #adb devices查到的设备名
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.4.2' #Adroid 系统版本
desired_caps['appPackage'] = 'cn.kuwo.player' #被测App的包名
desired_caps['appActivity'] = 'cn.kuwo.player.activities.EntryActivity' #启动时的Activity
desired_caps['unicodeKeyboard'] = 'True'
desired_caps['resetKeyboard'] = 'True'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# monkey 性能测试
#adb shell monkey -p cn.kuwo.player -s 500 -v 10000
time.sleep(20)
# cn.kuwo.player:id/tab_menu_img 点击 菜单
Menu = driver.find_element_by_id("cn.kuwo.player:id/tab_menu_img")
Menu.click()
time.sleep(2)
# 点击 登录
Regist = driver.find_element_by_id("cn.kuwo.player:id/login_regist_tv")
Regist.click()
time.sleep(2)
# 点击 账户登录
#TextView = driver.find_element_by_id("cn.kuwo.player:id/login_kw_layout")
#TextView.click()
#time.sleep(2)
# 点击 账号,输入账号
Name = driver.find_element_by_id("cn.kuwo.player:id/login_et_username").send_keys("unama")
# 点击删除按钮
#Clear = driver.find_element_by_id("cn.kuwo.player:id/tv_clear_account")
#Clear.click()
# 点击 密码,输入密码
Pass = driver.find_element_by_id("cn.kuwo.player:id/login_et_password").clear()
Pass = driver.find_element_by_id("cn.kuwo.player:id/login_et_password").send_keys("passwd")
# 点击 登录按钮,开始登录
#Pass = driver.find_element_by_id("cn.kuwo.player:id/login_qq_layout")
Login = driver.find_element_by_id("cn.kuwo.player:id/login__layout")
Login.click()
time.sleep(15)
# 点击 乐库
#yueku = driver.find_element_by_id("cn.kuwo.player:id/tab_item_title")
#yueku.click()
#time.sleep(2)
# 点击 图片
Picture = driver.find_element_by_id("cn.kuwo.player:id/square_middle_img")
Picture.click()
time.sleep(2)
# 点击 乐单
Taylor = driver.find_element_by_id("cn.kuwo.player:id/square_middle_img")
Taylor.click()
time.sleep(22)
# 点击 返回键
Back = driver.find_element_by_id("cn.kuwo.player:id/btn_back")
Back.click()
#driver.send_keys(Keys.BACK)
tuijian = driver.find_element_by_name(u"推荐")
self.assertIsNotNone(tuijian)
tuijian.click()
# 点击 菜单
Menu = driver.find_element_by_id("cn.kuwo.player:id/tab_menu_img")
Menu.click()
time.sleep(2)
# 点击 退出
Quit = driver.find_element_by_id("cn.kuwo.player:id/exit_layout")
Quit.click()
time.sleep(2)
if __name__ == '__main__':
testunit=unittest.TestSuite() #定义一个单元测试容器
testunit.addTest(StartPage("test_")) #将测试用例加入到测试容器中
filename="./MyAppiumLog.html" #定义个报告存放路径,支持相对路径。
fp=file(filename,'wb')
#使用HTMLTestRunner配置参数,输出报告路径、报告标题、描述
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='KuwoMusicAPK',description='Report_description')
runner.run(testunit) #自动进行测试