属性获取与断言
1.get attribute原理分析
注意⚠️ attribute是一个元素的方法,只有通过元素才能调到,是元素的一些属性
appium源码: https://github.com/appium
可以看出appium是通过多个项目组成的,ios的driver,android的driver
查询进程:ps ef|grep appium
杀掉进程 kill
2.属性命名规则
通过get attribute方法获取属性名和uiautomatorviewer中的属性名称和属性值是一样的
appium是如何去获取属性的呢,它是把这个方法映射到手机上的服务端口上叫8200,然后去手机端给手机发送了一个请求,手机端uiautomatorviewer接收到这个请求后,将这个属性返回给服务端,appiumsever,然后它再返回给我们的程序中,即我们编写的客户端,实际上真正工作的是uiautomator2这样一个服务
8200端口如下:
3.普通断言assert
4.hamrest断言
是一个断言框架,可以通过该框架提高代码的可读性,框架地址如下:
注意⚠️⚠️使用pip命令行安装是安装在系统环境下,使用搜索插件安装是安装在项目环境下
查看assert_that源码,最后一个是默认参数,可以不加,其他两个参数需要加上
def assert_that(actual, matcher=None, reason=""):
close_to源码
def close_to(value, delta): """Matches if object is a number close to a given value, within a given delta. :param value: The value to compare against as the expected value. :param delta: The maximum delta between the values for which the numbers are considered close.
assert_that的用法,equal_to、close_to、contains_string的用法,如下:
def test_assert(self): assert_that(10, equal_to(10), '这是一个提示') assert_that(8, close_to(10, 1)) assert_that('hello,rourou', contains_string('rourou'))