属性获取与断言

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'))

 

posted @ 2020-04-20 21:05  zhaikunkun  阅读(262)  评论(0)    收藏  举报