Web自动化测试
文章平均质量分 73
WEB自动化测试
敲代码敲到头发茂密
欲戴王冠,必承其重
展开
-
Docker部署UI自动化测试环境
selenium grid是selenium的三大组件之一,它的作用就是分布式测试执行,它是由一个hub节点和若干个node代理节点组成,Hub用来管理各个代理节点的注册信息和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令转发给代理节点来执行。利用容器技术我们可以快速的构建我们selenium hub和node 环境,其实selenium官网已经为我们制作好了镜像,我们只需要在docker环境中拉取即可,以下为selenium官网为我们提供的镜像名称。2、减少对单机器的资源消耗。原创 2023-08-29 08:17:37 · 317 阅读 · 0 评论 -
Web自动化测试——XAPTH高级定位
XPath 是一门在 XML 文档中查找信息的语言XPath 使用路径表达式在 XML 文档中进行导航XPath 的应用非常广泛XPath 可以应用在UI自动化测试web自动化测试app自动化测试可维护性更强语法更加简洁相比于css可以支持更多的方式浏览器-console浏览器-elements获取当前节点的父节点:获取当前节点的爷爷节点:组合通过父亲找儿子关系(先找到上一级,再定位本级):组合通过祖先找儿子关系(只要是本级的上级就可以):通过兄弟姐妹找(比较麻烦):xpath通过索原创 2023-05-08 21:10:00 · 968 阅读 · 3 评论 -
自动化测试——异常截图和page_source
allure.attach.file(截图路径,name=‘image’,attachment_type=allure.attachment_type.PNG)allure.attach.file(源码路径,name=‘text’,attachment_type=allure.attachment_type.TEXT)2、解决方法2:保证使用装饰器的时候,driver已经声明:driver = args[0].driver。前提条件:被装饰的方法是一个实例方法,实例需要有实例变量self.driver。原创 2023-03-13 08:43:01 · 1079 阅读 · 1 评论 -
自动化测试——cookie复用
在获取cookie成功之后。不要再进行扫码操作!2.获取cookie的时候,即执行代码get_cookies()时,一定要确保已经登录。3.植入cookie之后需要进入登录页面,刷新验证是否自动登录成功。添加Cookie:driver.add_cookie(cookie)获取Cookie:driver.get_cookies()大部分cookie的时效性都很长,扫一次可以使用多次。若用例需要经常执行,复用浏览器则不是一个好的选择。复用浏览器仍然在每次用例开始都需要人为介入。原创 2023-03-10 09:36:15 · 420 阅读 · 0 评论 -
自动化测试——selenium多浏览器处理
pytest_configure:解析命令行选项,每个插件都会用到这个hook函数。2、通过pytest_configure hook函数,接收命令行参数信息。web应用应该能在任何浏览器上正常的工作,这样能吸引更多的用户来使用。1、通过pytest_addoption hook函数,配置命令行参数。pytest_addoption:添加命令行参数组/命令行参数。用户使用的浏览器(frefox,chrome,IE 等)是跨不同浏览器组合验证网站或web应用程序功能的过程。chrome浏览器执行。原创 2023-03-09 09:41:50 · 1304 阅读 · 1 评论 -
跨平台设备管理方案Selenium Grid
Selenium Grid 是 Selenium 的三大组件之一,它可以在多台机器上并行运行测试,集中管理不同的浏览器版本和浏览器配置。通过将客户端命令发送到远程浏览器的实例, Selenium Grid 允许在远程计算机 (虚拟或真实) 上执行 WebDriver 脚本. 它旨在提供一种在多台计算机上并行运行测试的简便方法。原创 2024-01-01 23:44:24 · 1396 阅读 · 3 评论 -
web自动化测试——跨平台设备管理方案Selenium Grid
Selenium Grid 是 Selenium 的三大组件之一,它可以在多台机器上并行运行测试,集中管理不同的浏览器版本和浏览器配置。通过将客户端命令发送到远程浏览器的实例, Selenium Grid 允许在远程计算机 (虚拟或真实) 上执行 WebDriver 脚本. 它旨在提供一种在多台计算机上并行运行测试的简便方法。原创 2023-10-23 08:31:53 · 1003 阅读 · 11 评论 -
自动化测试经典面试题-定位不到元素
driver.excute_script(“document.querySelector(‘#train_date’).value”):获取时间控件的信息,并返回出来。driver.excute_script(“document.querySelector(‘#kw’).value”):获取文本框文本信息。driver.excute_script(“document.querySelector(‘#su’).click()”):点击操作。如果是动态元素,使用其他的定位方式,xpath或者css的相对定位。原创 2023-05-30 23:29:57 · 968 阅读 · 0 评论 -
自动化测试——无头浏览器的使用、capability配置参数解析
是一个配置浏览器启动的选项类,用于自定义和配置Driver会话。常见使用场景:1、设置无头模式:不会显示调用浏览器,避免人为干扰的问题。2、设置调试模式:调试自动化测试代码Capabilities是WebDriver支持的标准命令之外的扩展命令(配置信息)配置web驱动的属性,如浏览器名称、浏览器平台等。结合Selenium Grid完成分布式、兼容性等测试。原创 2023-03-16 09:35:48 · 1247 阅读 · 0 评论 -
自动化测试——执行javaScript脚本
获取时间控件的信息,并返回出来date_data=driver.execute_script(‘return document.querySelector(“#train_date”).value’)driver.execute_script(“document.querySelector(‘.mnav.c-font-normal.c-color-t’).innerText=‘今日新闻’”)document.querySelector(‘#kw’).value=‘java’:修改文本框的文字。原创 2023-03-07 09:28:06 · 1677 阅读 · 0 评论 -
自动化测试——多窗口切换和切换frame
frame是html中的框架,在html中,所谓的框架就是可以在同一个浏览器中显示不止一个页面。基于html的框架,又分为垂直框架和水平框架。原创 2023-03-02 18:59:04 · 1694 阅读 · 0 评论 -
自动化测试——高级控件交互方法
当你调用ActionChains中的其他方法时(如:chick(),send_keys()等),是不会立即执行的,而是会将所有的操作按顺序存放在一个队列里,只有当你调用perform()方法时,队列中的时间会依次执行。ActionChains模拟鼠标操作的常用方法。使用click()方法可以进行鼠标的单击操作,但是鼠标操作还包括:双击、右击、悬停、鼠标拖动等功能,所以,ActionChains类提供了鼠标的常用方法。所以,在任意的操作链结束之后都要调用 perform()方法。原创 2023-02-27 08:16:38 · 642 阅读 · 0 评论 -
pytest测试框架——pytest.ini用法
1、修改用例的命名规则2、配置日志格式、比代码配置更方便3、指定执行目录4、排除搜索目录5、添加标签,防止运行过程报警告6、添加默认参数。原创 2023-02-26 09:33:25 · 1111 阅读 · 0 评论 -
自动化测试——css元素定位
可以一直嵌套下去$('#head .s_form #lg')2、支持app端的webview(原生的不支持)3、解决各种复杂的定位场景。进入浏览器console。原创 2023-02-22 12:30:58 · 1394 阅读 · 0 评论 -
pytest测试框架fixture的应用
1、共享数据2、参数化:params,request.param3、自动执行(autouse=True),不用传入函数作为参数4、实现setup、teardown,更加灵活5、yield用法6、作用域(session、module、class、function)原创 2023-02-23 10:49:04 · 655 阅读 · 0 评论 -
web自动化测试之webdriver api总结(更新)
二、WebDriver常用方法三、获得验证信息四、显性等待自定义显性等待五、隐式等待六、定位一组元素执行结果原创 2022-06-12 09:33:18 · 714 阅读 · 16 评论 -
pytest框架中提示no tests ran in 0.02s的解决方法
运行截图解决方法1、py测试文件必须以“test_”开头(或“_test”结尾)2、测试类必须以Test开头,并且不能有init方法3、测试方法必须以“test_”开头4、断言必须使用assert原创 2022-04-27 08:50:12 · 3173 阅读 · 0 评论 -
web自动化测试常见面试题
一、找不到元素可能出现的原因:1、元素表达式错误2、不在指定的frame3、等待时间短,页面加载速度慢4、执行脚本打开了新的页面,不在指定的窗口中二、优化web自动化测试效率避免使用强制等待,会浪费等待的时间三、PO模式的理解1、PO模式实现代码的复用性2、提高了代码的可维护性、可读性将业务逻辑和测试逻辑相分离当页面发生变化的时候,测试逻辑不需要发生改变,只需要改动业务逻辑当测试逻辑发生变化的时候,业务逻辑不需要变化,只需要改动测试逻辑3、页面方法一般是返回的是self或者其他原创 2022-04-03 08:47:32 · 3575 阅读 · 1 评论 -
【web自动化测试】实现对文件的上传、窗口滚动
实现对文件上传的步骤input类型的上传文件(标签名为input)1、找到上传文件的入口2、获取入口的元素的表达式file_el=driver.find_element_by_name('user')3、上传文件(参数是文件的路径,再windows当中,因为路径是反斜杠,所在路径之前得加一个‘r’)file_el.send_keys(r'c:\666.doc')非input类型的上传文件需要第三方库pywinautopip install pywinauto def uplo原创 2022-04-03 08:46:15 · 470 阅读 · 0 评论 -
自动化测试之键盘操作和select操作
键盘操作from selenium import webdriverfrom selenium.webdriver.common.keys import Keysdriver=webdriver.Chrome()driver.implicitly_wait(10)driver.get('http://www.sogou.com')el=driver.find_element_by_xpath('//input[@name="query"]')el.send_keys('科比')el.原创 2022-04-02 06:53:16 · 857 阅读 · 0 评论 -
自动化测试之鼠标悬浮操作、双击、鼠标拖拽
鼠标操作。封装在ActionChains中-move_to_element-double_click 双击-context_click right_click 右键-drag_and_drop 鼠标拖拽-click 单击鼠标悬浮操作操作–在百度页面中找高级搜索虽然在html中能找到高级搜索,但是并不一定在页面中能找到高级搜索操作步骤为,先点击设置-原创 2022-04-02 06:52:49 · 2603 阅读 · 0 评论 -
自动化测试之alert弹窗的切换
进入页面,定位元素,成功hello_el=driver.find_element_by_path(’//p[@id=“hello”]’)点击hello_el.click()此时出现弹窗再次定位页面元素,失败,hello_el=driver.find_element_by_path(’//p[@id=“hello”]’)原因:因为点击之后会出现弹窗,弹窗中没有该元素,所以会定位失败。怎么办呢? 关闭弹窗1、先切换到弹窗坑 alert是属性,没有括号,一般不需要等待,如果需要等待,用显原创 2022-04-01 06:41:06 · 883 阅读 · 0 评论 -
自动化测试之iframe窗口的切换
第一个:很多同学不知道自己想要定位的元素在不在iframe中通过下面的方式确定是不是在iframe中(有2个html、…等)传入参数:1、iframe元素的name属性(最简单的)driver.switch_to.frame(‘baidu’)driver.find_element_by_xpath(’//input[@id=“kw”]’)2、如果iframe没有name属性呢? 可以根据iframe的索引(索引从0开始)只有一个iframe,所以索引为0driver.switch_to原创 2022-04-01 06:40:28 · 1096 阅读 · 1 评论 -
自动化测试8大元素定位之xpath语法(更新)
8大元素定位tag_name:通过标签名称,找出来的元素太多了name:用户输入input,不出意外总会有name属性class_nameid:1、同一个页面当中,某个id只能用一次,2、如果元素有id,会优先使用id定位,3、不好的消息,不是所有的元素都有idlink_text:连接的文本,只能用来定位连接partial_link_textcss_selectorxpath:用的最多//[@id=“s-top-left”]/a[3]:xpath表达式 相对路径: //开头原创 2022-03-31 06:17:26 · 4195 阅读 · 0 评论 -
python自动化—web页面操作之窗口切换
from selenium import webdriverdriver=webdriver.Chrome()#设置隐形等待时间 设置成全局的,每个元素需要等待10s 养成习惯driver.implicitly_wait(10)#打开搜狗搜索driver.get('http://www.sogou.com')#定位输入框,输入nbadriver.find_element_by_xpath('//input[@name="query"]').send_keys('n原创 2021-11-09 07:00:00 · 4258 阅读 · 0 评论 -
python—web页面操作之3种等待方式(更新)
一、强制等待在web自动化测试中,有时候为了提高效率,要避免使用强制等待time.sleep(6)import timefrom selenium import webdriverdriver=webdriver.Chrome() driver谷歌浏览器对象driver.get('http://www.sogou.com') 打开搜狗浏览器#定位到输入框,输入nbadriver.find_element_by_xpath('//in原创 2021-11-08 07:00:00 · 2163 阅读 · 0 评论 -
关于sendinput() inserted only 0 out of 2 python程序问题的解决
问题:当我在pycharm上执行自动化脚本时,pywinauto可以进行对窗口的操作;但是当我用jenkins构建自动化测试脚本时,pywinauto不能进行对窗口的操作,并且报错sendinput() inserted only 0 out of 2解决:因为pywinauto用了键盘调用,更换pywinauto版本、python版本、pycharm版本都无法解决。最后:居然把360卫士关了就好了,报错截图:...原创 2021-08-10 15:02:41 · 1535 阅读 · 11 评论 -
通过Jenkins执行脚本,生成自动化测试报告
1、allure配置a、下载 allure 的安装包。allure 跨语言的b、下载链接:https://github.com/allure-framework/allure2/releasesc、解压d、配置环境变量e、验证是否配置成功,cmd:allure2 、下载allure的pytest插件(生成测试报告)a、不支持unittestb、pycharm中下载allure-pytestc、命令行中输入pytest --alluredir outputallure serve out原创 2021-07-22 14:21:06 · 1534 阅读 · 2 评论