写了一个简单的小例子,能通过appium打开锤子便签,并输入“abc”,通过断言检测输入的信息是否正确
用了pycharm这个IDE来编写appium,运行时需要先在命令行输入appium打开appium,然后再运行pycharm
在pycharm里新建一个名为smartnote的项目
先自己写了一个不带框架的小测试(smartbianqian.py)
# -*- coding:utf-8 -*-
import os, time, unittest,sys
from appium import webdriver
# from selenium import webdriver
desired_caps = {
'platformName': 'Android', # 设备系统
'deviceName': '28f5751a', # 设备名称
'platformVersion': '7.1.1', # 设备系统版本
'noReset':'True',
'unicodeKeyboard':'True',#能输入中文字符
'resetKeyboard':'True',#能输入中文字符
'appPackage': 'com.smartisanos.notes', # apk包名
'appActivity': 'com.smartisanos.notes.NotesActivity', # apk的launcherActivity
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 启动app
time.sleep(5)
# self.verificationErrors = "今天天气不错在家学习!" #设置的断言
# 点击“输入框”
driver.find_element_by_id("com.smartisanos.notes:id/new_note_button").click()
# 输入字段
searchInputBox = driver.find_element_by_id('com.smartisanos.notes:id/list_rtf_view')
driver.find_element_by_id("com.smartisanos.notes:id/list_rtf_view").send_keys("appium")
driver.tap([(983, 1820)])#通过坐标定位
driver.find_element_by_id("com.smartisanos.notes:id/edit_done_button").click()
driver.find_element_by_id("com.smartisanos.notes:id/back_button").click()
if __name__ == '__main__':
unittest.main() #unittest.main()是运行主函数,运行后会看到测试结果
然后加入了框架(unittestsmart.py)
# -*- coding:utf-8 -*-
import os, time, unittest,sys
from appium import webdriver
# from selenium import webdriver
class Appium_test(unittest.TestCase):
def setUp(self):
desired_caps = {
'platformName': 'Android', # 设备系统
'deviceName': '28f5751a', # 设备名称
'platformVersion': '7.1.1', # 设备系统版本
'noReset':'True',
'unicodeKeyboard':'True',#能输入中文字符
'resetKeyboard':'True',#能输入中文字符
'appPackage': 'com.smartisanos.notes', # apk包名
'appActivity': 'com.smartisanos.notes.NotesActivity', # apk的launcherActivity
}
self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 启动app
time.sleep(5)
self.verificationErrors = "abc" #设置的断言
def tearDown(self):
time.sleep(10)
assertt = self.driver.find_element_by_id("com.smartisanos.notes:id/list_rtf_view").text
self.assertEqual(assertt,self.verificationErrors,msg="abd")#验证输入的文本是否是abd因为输入的是abc,所以不对,应该会报错
# 断言:实际结果,预期结果,错误信息
self.driver.quit()
def test_creat(self):
# 根据元素xpath来定位
# 点击“输入框”
self.driver.find_element_by_id("com.smartisanos.notes:id/new_note_button").click()
# 输入字段
searchInputBox = self.driver.find_element_by_id('com.smartisanos.notes:id/list_rtf_view')
#searchInputBox.send_keys("appium")
self.driver.find_element_by_id("com.smartisanos.notes:id/list_rtf_view").send_keys("abc")
self.driver.tap([(983, 1820)])
if __name__== '__main__':
unittest.main(verbosity=2)
生成html的测试报告(unittesthtml.py)
# coding=utf-8
import unittest
from unittestsmart import Appium_test#从unittestsmart导入
from HTMLTestRunner import HTMLTestRunner
if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(Appium_test))
with open('HTMLReport7.html', 'wb+') as f:
runner = HTMLTestRunner(stream=f,
title='appium测试报告',
description='新增一条记录并保存',
verbosity=2
)
runner.run(suite)