编写Python用例脚本遇到的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写Python用例脚本遇到的问题相关的知识,希望对你有一定的参考价值。

参考技术A 在使用Python3做自动化测试的过程中可能会遇到这种情况:assert函数不加try except 就可以正常在报告里体现用例不通过,加上了try except 反而变成了通过。

这是因为在使用try except 时,捕获了assert函数产生的AssertionError异常,导致异常没有上抛,这时只需要在后面加上raise就可以再次把它抛出。

所以如果需要上报错误,就需要在try except语句后添加raise来上报错误,否则即使有错误用例也会直接通过

点击某个元素时通常用click方法,但是当所点击的元素UI区域太小时,会点击无效,造成以为视图中没有当前元素的错觉。

所以当前所点击的元素UI区域较小时,可以选择采用 tap 点击即轻触操作

当前所点击的元素UI区域较大时,可以选择采用click 点击或者 tap轻触操作

找对应的元素最好按照上图中参数的顺序尝试,优先选择通过accessibility id寻找元素,

如果元素没有“accessibility id”, 在通过“-ios class chain” 寻找元素

如果“ios class chain” 不容易找到元素,可尝试通过“-ios predicate string” 寻找元素

亲测"xpath"不是特别好用

正常情况下,通过“accessibility id” 或者“-ios class chain” 就能找到对应的元素

想要获取元素属性值,可通过get_attribute方法获取,其中的参数需要参考当前Inspector显示出的attribute,没有显示的则无法获取其属性值

例如:通过当前Inspector显示出的attribute,可以获取value属性值、type属性值、width属性值等等

有些页面数据复杂,点击某个元素后,接口请求较慢,此时延迟参数应设置大一点,防止页面未完全展示,导致后续点击操作报错
如:

有时点击某个元素后,不涉及到请求接口或者页面非常简单,此时延迟参数可设置小一点,避免较长等待

python--编写用例脚本

from appium import webdriver
import time

desired_caps = {}
desired_caps[‘platformName‘] = ‘Android‘
desired_caps[‘platformVersion‘] = ‘4.4.2‘
desired_caps[‘deviceName‘] = ‘test1‘
desired_caps[‘appPackage‘] = ‘com.xxxxx‘
desired_caps[‘appActivity‘] = ‘.xxxx‘

driver = webdriver.Remote(‘http://localhost/wd/hub‘, desired_caps)

#在输入框中输入值

driver.find_element_by_class_name("xxx.EditText").send_keys("xxx")

#点击事件
driver.find_element_by_id("xxx").click()

# login
driver.find_element_by_id("xxx").click()

#等待2秒

time.sleep(2)


# massage
driver.find_element_by_id("xxx").click()
driver.find_element_by_id("xxx").click()

#退出app
driver.quit()

以上是关于编写Python用例脚本遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

使用IDEA工具编写Python自动化脚本遇到的小问题

python-appium练习编写脚本时遇到问题

python3编写脚本时遇到的坑......

使用pytest执行测试用例遇到的问题

Python+Selenium+Unittest编写超链接点击测试用例

python测试框架:如何执行pytest测试用例