Airtest 进行WebUI自动化测试(selenium)

一、介绍

        AirtestIDE支持连接 chrome浏览器 来进行网页的自动化测试,它使用的库是airtest-selenium,是对selenium的python库做的一层封装。本质就是selenium自动化测试。
        默认情况下,selenium window并没有展现出来,需要在IDE的顶部菜单栏,找到窗口,勾选上最后一个 selenium window 的选项,即可在IDE的左侧显示出selenium window:

里面的每个功能,都与一段python代码对应!
 

二、工作原理

        airtest集成Chrome浏览器,基于selenium进行web自动化测试,通过录制得到python脚本,调用Chromedriver驱动浏览器执行指定动作;因此,直接操作浏览器就能生成测试脚本

三、环境准备

        airtest自带chromedriver驱动,但是若是版本不匹配,可能会报找不到驱动的错;因此需要找到对应浏览器版本的驱动,覆盖airtest根目录下旧版本的Chromedriver。
        1、python及相关环境变量
        2、将airtest_selenium拷贝到python目录下
        3、相关库:airtest、selenium、pynput等
        4、运行命令:python -m airtest run 脚名

        工具设定:提前在选项--设置里设置好 chrome path ;

四、录制脚本

        selenium window提供以下辅助按键帮助我们快速生成airtest-selenium/selenium脚本:
        
        start_web:快速录制打开当前标签页网址的脚本
        touch:快速录制用 find_element_by_xpath 方式定位元素并进行点击的脚本     
        driver.airtest_touch:快速录制用截图方式来点击元素的脚本
        text:快速录制搜索元素的文本输入脚本
        assert:用 x path 定位元素的方式,断言元素是否存在
        driver.assert_template:用截图方式断言元素存在
        snapshot:对当前网页进行截图
        previous_tab:切换到上一个打开的标签页
        new_tab:切换到新打开的标签页
        back:网页回退
        forward:网页前进

start_web:在浏览器打开页面;在编辑窗口生成如下代码,修改web 地址即可打开指定页面

driver.get("Write your test web address!")

touch:点击操作,调用click()方法,生成对应的selenium语句;操作鼠标点击时,airtest/selenium监控点击的位置,通过绝对路径/id等,获取对象,生成python语句;

#通过 绝对路径找到元素,然后调用点击方法 实现touch
driver.find_element_by_xpath("路径").click()
#通过获取元素id,获取元素,然后调用点击,实现touch
driver.find_element_by_id("id").click()

text:快速录制搜索元素的文本输入脚本;相当于调用selenium的send_keys(text,keyboard)操作;两个参数:text:输入的文本,keyboard:键值,输入文本后键盘直接做的操作;生成语句:

#找到kw这个id的组件,输入“测试” ,按下回车键;
#模拟的是在百度首页,输入测试,按下回车
driver.find_element_by_id("kw").send_keys("测试",keys.ENTER)

assert:用 x path 定位元素的方式,也可以通过id定位,断言元素是否存在;例如要打开百度页面,那么判断页面是否成功打开 ;生成语句:

#断言,是否存在id为 kw 的元素;第三个参数是填写测试点名称
driver.assert_exist("kw", "id", "请填写测试点.")

   snapshot:对当前网页进行截图保存;可以在测试报告中检查;生成语句:

driver.snapshot()

 driver.airtest_touch:点击图片,通过图像识别来进行点击,传入图片,然后识别出这个图片;点击图片;生成语句:

#点击图片,截图,把图片放到括号里。
driver.airtest_touch()
'''
driver.airtest_touch(Template(r"tpl1652605973720.png", record_pos=(0.388, -0.007), resolution=(1920, 1080)))
'''

  driver.assert_template:用截图方式断言元素存在;与上面的airtest_touch不同,template至蛟洋是否存在,不点击;生成语句:
 

#第一个参数是图片,第二个参数是测试点名
driver.assert_template(Template(r"tpl1652606518115.png", record_pos=(0.354, -0.014), resolution=(1920, 1080)), "请填写测试点")

页面操作:

'''
        previous_tab:切换到上一个打开的标签页
        new_tab:切换到新打开的标签页
        back:网页回退
        forward:网页前进
'''


driver.switch_to_previous_tab()
driver.switch_to_new_tab()
driver.back()
driver.forward()

猜你喜欢

转载自blog.csdn.net/guanrongl/article/details/124776238