如何使用airobots进行自动化Web测试

发布于:2024-10-24 编辑:匿名 来源:网络

在上一篇文章中,我给大家介绍了一个自动化测试框架——airobots。今天我将向您展示如何使用 airobots 进行网络自动化。

下载演示工程(可选) 通过命令执行用例文件或用例目录即可直接测试airobots: 代码语言:javascript copy airobots -t web 用例文件或用例目录路径 查看帮助 代码语言:javascript copy airobots -husage: airobots [ -h] [-v] -t {api,web,ios,android} [-b {Firefox,Chrome,Ie,Opera,Safari,PhantomJS}] [-r 远程 URL]Airobots Union Auto测试框架可选参数: -h , --help 显示此帮助消息并退出 -v, --version 显示版本 -t {api,web,ios,android}, --type {api,web,ios,android} 测试类型, 选择: api, web , ios, android -b {Firefox,Chrome,Ie,Opera,Safari,PhantomJS}, --browser {Firefox,Chrome,Ie,Opera,Safari,PhantomJS} 测试浏览器, 选择: Firefox, Chrome , Ie, Opera, Safari , PhantomJS -r REMOTE URL, --remote-url REMOTE URL Web 测试的远程 url,例如。 ├─Library # 测试相关的自定义库 ├─Resource # 测试相关的资源文件 │ ├─TestFiles │ └─TestSQL ├─Results# 测试报告存放目录 ├─TestCases # 测试用例存放目录 │ ├─APICase # API 测试用例存放目录 │ ├─WebCase # Web 测试用例存放目录 │ ├─AndroidCase # Android 测试用例存放目录 │ ├─IOSCase # IOS 测试用例存放目录 │ └─PageObjects # POM 文件存放目录 └─WebChrome # 浏览器远程客户端相关服务 ├─SeleniumGrid └─WebDriver 使用前请安装相关依赖包。

执行以下命令会自动安装代码语言: javascript copy pip install -rrequirements.txt -i install -g chromedriver geckodriver 至此,环境就准备好了。运行示例用例脚本 aerobots 进行 Web 测试。

本质仍然是使用selenium,只不过是使用了robotframework的二次封装方式,更加方便,更容易理解。还结合了airtest的图像识别技术来控制不易使用xpath定位的控件。

,又增加了一种定位方法。还是建议先使用id、css、xpath进行定位。

如果无法定位这些,可以使用图像识别。图片识别存在错误,对识别的截图和页面环境要求较高。

例如,截图不能保留过多的空白背景,文字截图的识别率较低。现在以百度搜索为例,向大家展示如何进行网页测试。

执行项目根目录下的代码语言: javascript copy airobots -t web TestCases/WebCase/test_hello.py --clean-alluredir --alluredir=Results 当看到如下运行结果时,说明执行成功。运行以下命令生成报告: 代码语言:javascript 复制 allureserve 结果 55 报告详细记录了操作步骤以及步骤截图 27 代码分析 TestCases/WebCase/test_hello.py 为测试用例文件 代码语言:javascript 复制自airtest.core.api import * from airobotLibrary import AirSelenium # Web测试必须引用此模块 from unittest import TestCasefrom airtest.core.settings import Settings as STfrom TestCases.PageObjects.Web.baidu_demo import DemoOPfrom Library.common_library import CommonLibraryimport pytest### ### 以上内容仅供参考 Module class CustomCase(TestCase): """Custom launcher.""" @classmethod def setUpClass(cls): super(CustomCase, cls).setUpClass() cls.wd = AirSelenium() # 实例化一个浏览器 cls.wd .set_window_size(,) cls.wd.set_browser_implicit_wait(20) cls.baidu = DemoOP(driver=cls.wd) # 页面操作的封装类 def setUp(self): """自定义设置逻辑""" # ST.THRESHOLD = 0.75 # 设置图像识别的阈值。

当达到75%时,匹配成功 super(CustomCase, self).setUp() def tearDown(self): """此处自定义拆卸逻辑。""" super(CustomCase, self).tearDown() @classmethod def TeaDownClass(cls): super(CustomCase, cls).tearDownClass() cls.wd.close_browser () @pytest.mark.second_to_last # 执行顺序设置,倒数第二个执行 def test_baidu(self): # 使用RobotFrameWork-SeleniumLibrary方法 self.wd.go_to(' # self.wd.maximize_browser_window() # 调用PageObject self . baidu.search_and_click('软件测试', '百度百科') self.wd.switch_window('NEW') self.wd.page_should_contain('百度百科') # Selenium原生方法可以通过self.wd混合调用。

driver , self.wd 是 robotsframework 方法 self.wd.driver.get(' self.wd.click_link('News') self.wd.switch_window('NEW') title = self.wd.get_title() # Airtest 断言method assert_equal(title, '新闻中心-腾讯', '比较页面标题')TestCases/PageObjects/Web/baidu_demo.py 为 PageObject 类文件代码语言: javascript copy from airtest.core.api import *from unittest import TestCasefrom airtest.core.settings import Settings as STfrom airobotLibrary import AirSeleniumfrom pathlib import Path######以上必要模块供参考 TPL_PATH = Path(__file__).parent # 获取当前文件所在目录路径。图像识别屏幕截图通常与脚本放在一起。

图像识别需要绝对路径,否则可能找不到图像 class DemoOP(TestCase): " ""演示页面对象。""" # 定义页面控件识别方法。

一般情况下,首选 id 或 xpath。 SEARCH_BOX = '//*[@id="kw"]' # SEARCH_BUTTON = '//*[@id="su "]' # 使用图像识别方式,图像必须是绝对路径,并通过Template SEARCH_BUTTON实例化= Template(Path.joinpath(TPL_PATH, 'baidu.png')) LINK = '//div/h3/a[contains(string (), "{}")]' def __init__(self, driver): super( DemoOP, self).__init__() self.wd = driver or AirSelenium() # AirSelenium()是可选的,方便编写脚本时如何自动关联webdriverdef input_keywords(self, text): self.wd.input_text(self.SEARCH_BOX, text=text) def click_search_button(self): # 使用图片断言 self.wd.air_assert(self.SEARCH_BUTTON, '搜索按钮是否存在' ) # 使用图像识别找到控件并单击它们。

self.wd.air_开头的都是图像识别方法 self.wd.air_click(self.SEARCH_BUTTON) def search(self, text): self.input_keywords(text=text) self.click_search_button () sleep(1) def search_and_click (self, text, click_text): self.search(text) self.wd.set_focus_to_element(self.LINK.format(click_text)) self.wd.click_link(self.LINK.format(click_text) )) 实例化 AirSelenium 时的高级提示通过无头浏览器运行测试,添加 headless=True 参数 代码语言: javascript copy @classmethod def setUpClass(cls): super(CustomCase, cls).setUpClass() cls.wd = AirSelenium (headless=True) # 添加 headless =True 启动无头浏览器 cls.wd.set_window_size(,) cls.wd.set_browser_implicit_wait(20) cls.baidu = DemoOP(driver=cls.wd) # 操作页面封装的类运行远程浏览器(分布式测试)。在演示项目中,WebChrome目录包含预配置的selenium网格服务和远程浏览器。

要实现分布式测试,需要安装docker服务。构建映像后,启动并安装它。

docker和docker-compose后,执行以下命令启动服务: 代码语言:javascript copy docker-compose up38 服务启动后,打开浏览器,输入地址: -t web TestCases/WebCase/test_hello.py - -clean-alluredir -- alluredir=结果 -r -t web TestCases/WebCase/test_hello.py --clean-alluredir --alluredir=结果 -r -b Firefox07 注册浏览器代码语言:javascript copy java -jar selenium-server- standalone.jar -role node -hub -t web TestCases/WebCase/test_hello.py --clean-alluredir --alluredir=Results -r -b Safari及以上,是web测试的一般流程。不管用什么框架,Web测试的难点基本上都是关于元素定位,这里推荐一款xpath识别插件,比较好用——POM Builder,可以根据id、css、name来识别元素, xpath 等方法。

26 当然,安装selenium ide并通过录制生成脚本更方便。更多功能需要探索。

下期15我会向大家介绍如何使用airobots进行接口测试。

如何使用airobots进行自动化Web测试

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 老铺黄金等人“折A转港”

    老铺黄金等人“折A转港”

    老铺黄金A股崩盘后,选择转投港股。 11月10日,老铺黄金在香港联交所披露招股说明书。 梦金源今年9月向港股市场发起进攻,之前也曾遭遇过“A”的失败。 11月17日,深交所公告称,星期六福已于11月8日主动撤回上市申请。 黄金珠宝终端消费热情带动黄金珠宝企业业绩稳步上升,不

    06-18

  • 全球首次碳化硅MEMS微推力阵列在轨点火试验成功

    全球首次碳化硅MEMS微推力阵列在轨点火试验成功

    南京理工大学化工学院消息:近日,碳化硅MEMS(微机电系统)微推力阵列芯片在轨点火试验成功与金牛座纳米星运行37天后,从地面收到点火命令成功点火,金牛座纳米星的姿态控制技术在轨道上得到验证。 金牛座纳米卫星由八院所属上海依依斯航天技术有限公司研制。 9月12日11时26

    06-06

  • 【全球财经24小时】2023年9月21日投融资事件汇总及详情

    【全球财经24小时】2023年9月21日投融资事件汇总及详情

    今日全球市场共发生16起投资披露事件,其中境内13起,境外13起。 其中,国内先进制造业4例,医疗健康行业4例,汽车交通运输行业1例,电商零售行业1例,企业服务行业1例,传统制造业2例。 涉外医疗健康行业2例,金融行业1例。 国内事件 1、灵科药业完成C2轮融资,整体C轮融资金

    06-18

  • 相信你的耳朵,盲目测试全球最薄vivo X5Max的Hi-Fi 2.0

    相信你的耳朵,盲目测试全球最薄vivo X5Max的Hi-Fi 2.0

    vivo在年底前发布了年度旗舰——全球最薄vivo,它保持着全球最薄手机的记录。 此外,vivo X5Max还搭载全新手机Hi-Fi 2.0架构,使该手机成为全球音质最好的手机,媲美专业Hi-Fi玩家。 那么,什么是Hi-Fi 2.0?根据vivo提供的信息,Hi-Fi 2.0采用了二次供电+二次放大+专业音频解

    06-17

  • 共享纸巾平台“纸鼠”完成数百万元天使轮融资,白马金服投资

    共享纸巾平台“纸鼠”完成数百万元天使轮融资,白马金服投资

    据投资界2月6日消息,共享纸巾平台“纸鼠”近日宣布,已完成数百万元天使轮融资,投资方为白马金服。    据悉,本轮融资资金将用于共享卫生纸机的升级、研发和市场拓展。   Paper Mouse成立于今年10月,是一个组织共享平台。 公开信息显示,纸鼠目前已预订多台卫生纸机,

    06-18

  • 尊湃通信完成数亿元Pre-A轮融资,致力于提供全系列Wi-Fi芯片及解决方案

    尊湃通信完成数亿元Pre-A轮融资,致力于提供全系列Wi-Fi芯片及解决方案

    投资界(ID:pedaily)5月9日消息,尊湃通信科技(南京)尊湃传播股份有限公司(二)近日宣布完成数亿元Pre-A轮融资。 本轮由小米集团、虎山资本、天极资本、嘉域资本、上海科创海王资本、品智信息等知名金融投资机构投资。 以及产业投资者的构成。 此前,尊湃通讯于5月21日完

    06-18

  • 宜家最酷的未来产品都来自这个神秘的实验室

    宜家最酷的未来产品都来自这个神秘的实验室

    在哥本哈根肉类加工区的中心地带,有无数的画廊、艺术咖啡馆和创意工作室。 其中有一栋由鱼市场改建而成的平米建筑。 利用技术和好奇心来绘制宜家的未来蓝图。 这就是宜家资助的 SPACE10 冒险之旅的起点。 作为宜家的未来生活实验室和产品创意孵化器,SPACE10总是开发一些超级

    06-21

  • 李彦宏内部信宣布李震宇晋升为百度集团高层副总裁

    李彦宏内部信宣布李震宇晋升为百度集团高层副总裁

    百度创始人与CEO李彦宏通过内部信宣布,百度集团副总裁和智能驾驶集团总经理李震宇晋升为集团高层副总裁,并将继续担任全面负责IDG的业务和管理工作,并向集团CEO汇报。

    06-17

  • 艾罗能源正计划在A股IPO,主要产品包括光伏储能系统等

    艾罗能源正计划在A股IPO,主要产品包括光伏储能系统等

    艾罗能源正在筹划A股IPO。 公司长期专注于家用光伏逆变器、家用储能设备等新能源供电设备的研发。 、生产、销售。

    06-18

  • 香港理工大学研发出适用于可穿戴电子装置的高透气超弹导电材料

    香港理工大学研发出适用于可穿戴电子装置的高透气超弹导电材料

    2020年3月24日,香港理工大学(理大)研发出适用于长时间佩戴电子装置的高透气超弹导电材料一段时间。 。 这种创新的导电材料采用涂层或印刷的方法,将液态金属材料添加到静电纺丝制成的弹性纤维网上。 它不仅具有高透气性、弹性、导电性且具有高导电稳定性,可广泛应用于健

    06-06

  • 冯仑:有了这样的制度环境,创新只是“副产品”

    冯仑:有了这样的制度环境,创新只是“副产品”

    近日,万通集团创始人冯仑在WISE超级进化者大会上谈到创新时表示,个人驱动力是一方面,外部的制度环境也很重要。 冯仑表示,必须有一个允许民营企业存在的制度环境,企业才愿意创新。 比如,土地1-2年不开发就被拿走,比如加大健康住房的投入,但登记价格和不创新一样,企业

    06-18

  • 杨迪、麻子、谢广坤都做出了“爆炸性的改变”,这背后是谁?

    杨迪、麻子、谢广坤都做出了“爆炸性的改变”,这背后是谁?

    亚洲换头术的魔力在短视频继续放大。 前一分钟杨迪还自嘲小眼睛,后一分钟成功变身男团酷偶像。 苹果手机的面部识别功能在真正的“苦力”面前不得不被打败。 《狂飙》中的麻子哥变身为五官精致的清秀美男。 无奖猜测。 原本只是想看热闹的网友们大概没有想到,看完一个视频后

    06-18