web自动化测试
文章平均质量分 85
~
weixin_44885027
这个作者很懒,什么都没留下…
展开
-
web自动化总结
web自动化项目流程测试计划时分析哪些功能需要进行自动化测试,哪些进行手工测试什么时候开始介入web自动化测试?在项目稳定的时候web自动化代码流程手工测试,分析测试步骤及准备元素定位方式,写到PO中测试类中,用注释写清楚测试步骤测试类中,准备前置条件、后置条件PO类中,封装页面行为测试类中,调用具体的PO类重点内容元素定位常用定位:id、name、classnamexpathxpath表达式一定要使用相对路径//(为什么不能使用绝对路径?无法应对页面的改动)逻辑符原创 2021-02-18 16:51:01 · 433 阅读 · 0 评论 -
web自动化实战之allure测试报告
allure介绍Allure框架是一个灵活的轻量级多语言测试报告工具,它不仅以web的方式展示了简介的测试结果,而且允许参与开发过程的每个人从日常执行的测试中最大限度的提取有用信息。从dev/qa的角度来看,Allure报告简化了常见缺陷的统计:失败的测试可以分为bug和被中断的测试,还可以配置日志、步骤、fixture、附件、计时、执行历史以及与TMS和BUG管理系统集成,所以,通过以上配置,所有负责的开发人员和测试人员可以尽可能的掌握测试信息。从管理者的角度来看,Allure提供了一个清晰的“大图原创 2021-02-18 13:41:26 · 702 阅读 · 0 评论 -
web自动化实战之BasePage
背景页面行为分类什么是BasePage?哪些页面行为可以被封装成basepage?代码实战原创 2021-01-17 12:48:08 · 1537 阅读 · 0 评论 -
web自动化实战之复杂用例的实现
登录未授权场景输入未授权的用户名及密码,点击登录后会弹出提示:此账号没有经过授权,请联系管理员!这个提示会一闪而过,所以一般的打开F12-elements直接定位是定位不到的。那么该如何定位呢?提示框的定位在这里我们可以打开F12,切换到Sources,这里有个调试功能,我们在输入用户名、密码,点击登录按钮后,可以按下暂停按钮,这样就能定位到一闪而过的提示框了:定位好元素后,剩下的部分就跟之前登录的测试一样了!初步代码login_data.py#登录未授权数据"""封装登录操作所需要原创 2021-01-15 14:33:21 · 608 阅读 · 0 评论 -
web自动化实战之pytest
pytest实战pytest下的命名规则背景pytest以特定规则搜索测试用例,所以测试用例文件、测试类以及类中的方法、测试函数这些命名都必须符合规则,才能被pytest搜索到并加入测试运行队列中。默认搜索规则如果pytest命令行有指定目录,则从该目录中开始查找测试用例文件,如果没有指定,则从当前运行目录开始查找文件。注意,该查找是递归查找,子目录中的文件也会被查找到。并不是能够查找到目录下的所有文件,只有符合命名规则的文件才会被查找。默认规则是以test_开头或者以_test结尾的.py文件原创 2021-01-09 17:45:12 · 1049 阅读 · 0 评论 -
web自动化实战之PageObject
背景现在两个测试用例,一个登录成功的,一个登录失败的,它们只剩下三个步骤了,一个是访问登录页面,这个两者都是相同的,都是访问同一个url;另一个则是定位元素+元素操作(假设login_error_01中定位了用户名、密码输入框,然后sendkeys为空 ),它们的定位方法、元素表达式都是相同的,都是定位的用户名、密码输入框;最后一个是断言,但是这两个用例用来断言的预期结果和实际结果都是完全不同的。那么分析到这,我们有没有什么办法能再进行一层封装呢?我们可以发现,这两个测试用例都是在同一个页面下进行的,都原创 2021-01-14 10:00:17 · 505 阅读 · 1 评论 -
web自动化实战之框架搭建
接口测试框架复用接口自动化测试框架是可以直接搬过来用的,我们只需复制过来即可。excel测试用例的编写web测试用例与接口测试用例相比,可以去掉接口名称、请求方法、数据这三个字段,因为我们不需要请求接口;另外url也可写可不写,因为接口测试一般需要在多个环境运行,所以写上url后与yaml中的host拼接比较方便;而web自动化测试一般是在线上运行,所以可以直接在配置文件中写好url即可,当然excel中写上也可以。登录测试用例...原创 2021-01-07 07:49:38 · 550 阅读 · 0 评论 -
接口自动化实战之项目搭建
框架总体介绍框架搭建首先创建一个新的python项目,原创 2020-12-13 17:45:33 · 702 阅读 · 2 评论 -
web自动化基础之上传操作
input类型上传对于input类型的上传组件(如下):我们可以直接定位这个input元素,然后sendkeys,传入要上传文件的路径:#定位上传的input元素element = driver.find_element_by_name("photo")# 输入的是文件的路径。element.send_keys("c:\photo.jpg")非input类型上传对于非input类型的上传场景(可能是其他元素或组件),我们就需要考虑别的办法了。我们可以看到,很多上传的场景都会打开这样一原创 2021-01-03 15:48:56 · 180 阅读 · 0 评论 -
web自动化基础之js操作
为什么有了selenium还需要执行js操作?前面我们讲过,selenium之所以能操纵浏览器,是因为我们写好的selenium代码它会经过处理后作为参数通过http协议传给webDriver服务端,webDriver再根据请求来决定向浏览器发送什么样的js代码,浏览器的js解释器执行js代码之后就达到了我们web自动化预期的效果。那么为什么有了selenium封装的那么多指令,还需要执行js呢?因为有一些指令js是没有封装的。比如说修改某个元素的属性,selenium中是没有封装这样的方法的:所以要原创 2021-01-03 15:20:43 · 865 阅读 · 0 评论 -
web自动化基础之页面操作
什么是actionChains?actionChains,直译过来是动作链条,也称为行为事件,是selenium中专门用来处理鼠标、键盘操作的模块,它可以模拟一些键盘、鼠标的操作,如:按某个键、输入字符、点击、悬停、拖拽等。actionChains底层代码初探init我们先来看actionChains的__init__方法。 def __init__(self, driver): """ Creates a new ActionChains.原创 2021-01-02 22:32:00 · 641 阅读 · 0 评论 -
web自动化基础之三大切换
为什么要切换?要定位的元素在B(可以是B窗口、B-iframe、主页面),但现在却在A这边(可以是A窗口、A-iframe、弹窗),所以要切换到B这边才能定位到元素。窗口切换如下,我们要进行如下的操作。第一步,在百度搜索框输入关键字,点击“百度一下”按钮:在返回的搜索结果中点击百度百科:在百度百科页定位到“作品背景”超链接:代码如下:from selenium import webdriver#初始化chrome浏览器driver = webdriver.Chrome()#获取原创 2020-12-27 22:27:19 · 299 阅读 · 0 评论 -
web自动化基础之三大等待
为什么需要等待?如下述代码所示:from selenium import webdriver#初始化浏览器web = webdriver.Chrome()#浏览器中输入urlweb.get("http://www.baidu.com")#搜索框中输入关键字web.find_element_by_id("kw").send_keys("三大等待")#点击“百度一下”web.find_element_by_id("su").click()#点击其中一个链接web.find_elemen原创 2020-12-23 08:09:59 · 172 阅读 · 0 评论 -
web自动化基础之元素定位
webelement对象from selenium import webdriver#初始化浏览器driver = webdriver.Chrome()#浏览器中输入地址driver.get("http://www.baidu.com")#定位元素element = driver.find_element_by_id("kw")print(element)以上代码打印结果如下:可以看到,打印element变量返回了一个webelement的对象,类似于DOM的element对象。原创 2020-12-21 23:08:29 · 596 阅读 · 2 评论 -
web自动化前置准备之javascript与DOM
web自动化为什么要学js?我们看回selenium原理中的这幅图。selenium发送请求给webdriver,而webdriver如何操作浏览器呢?答案是通过js。每个浏览器都会内置js解释器,webdriver通过selenium传来的数据翻译成js——也就是浏览器能识别的代码。另外,我们在操作元素时,需要改变元素的一些属性,也需要用到js。js如何操作浏览器?webdriver把selenium传来的数据翻译成js脚本给浏览器,浏览器读懂了之后,怎么做到找到html中的元素、操作元素、改变原创 2020-12-19 15:37:54 · 175 阅读 · 1 评论 -
web自动化前置准备之html
什么是html?html翻译过来是超文本标记语言。那么这里就需要解释下什么叫超文本,什么叫标记语言。所谓超文本就是超越了普通文本的文本,它是文字、视频、图片、音频等的混合体,最关键的是含有超链接,能够从一个文本跳转至另一个文本。而正因为是超文本,它不像TCPIP协议中底层的复杂、普通人无法看懂的二进制包形式,它是完整的、有意义(正常人能看懂)的数据。第二个要解释的是标记语言。标记语言是用来存储信息,但不具有任何行为,而编程语言是有行为的,也就是可以调用各种函数、方法等对信息进行各种灵活的处理。它跟编程原创 2020-12-13 21:15:07 · 313 阅读 · 2 评论 -
web自动化前置准备之selenium原理
原理初探我们使用python语言来写selenium代码,目的是为了让网页按照我们的预期来自动化实现一些效果,比如:自动点击、自动输入字符、自动提交表单等。而我们操作网页的方式跟我们实际上网操作的那样,用鼠标定位到需要操作的地方,然后通过鼠标或键盘的一些动作来执行操作;但又有点不太一样,不一样的地方在于,我们定位到需要操作的地方是通过元素,也就是html中对应的标签去定位;而执行操作的方式,就是通过修改dom对象的属性来实现。所以,我们通过selenium来使网页自动化进行操作,实际上操作的是网页的htm原创 2021-01-16 22:24:04 · 356 阅读 · 0 评论 -
web自动化前置准备之selenium环境准备
python中selenium库安装通过pip install selenium即可安装selenium库浏览器驱动使用谷歌浏览器,就需下载chromeDriver使用火狐浏览器,就需下载firefoxDriver由于chromeDriver的官方下载需要科学上网访问国外的网下,所以这边提供一个国内的镜像网站:https://npm.taobao.org/mirrors/chromedriver那这么多版本,应该下哪个呢?规则是,最好与浏览器版本对应。如下,我这边浏览器版本是这个:所原创 2020-12-04 07:46:40 · 182 阅读 · 0 评论 -
web自动化前置准备之web自动化测试介绍
什么是selenium?浏览器自动化的框架,用来做web自动化测试(注意一个误区,selenium不是专门的测试工具,仅仅是因为它能做web自动化,然后拿它来实现web自动化测试而已)为什么要做web自动化测试?用来替代以下测试:(1)重复的手工工作(2)冒烟测试(3)回归测试(4)正向用例web自动化测试 vs 接口自动化测试由上图可以看出,web自动化测试属于金字塔最顶端,属于成本最高、效用最低的测试;而接口自动化测试属于集成测试,比web自动化成本更低、效用更高;单元测试看起来虽然原创 2020-12-02 07:51:05 · 330 阅读 · 0 评论