自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 web自动化总结

web自动化项目流程测试计划时分析哪些功能需要进行自动化测试,哪些进行手工测试什么时候开始介入web自动化测试?在项目稳定的时候web自动化代码流程手工测试,分析测试步骤及准备元素定位方式,写到PO中测试类中,用注释写清楚测试步骤测试类中,准备前置条件、后置条件PO类中,封装页面行为测试类中,调用具体的PO类重点内容元素定位常用定位:id、name、classnamexpathxpath表达式一定要使用相对路径//(为什么不能使用绝对路径?无法应对页面的改动)逻辑符

2021-02-18 16:51:01 473

原创 接口自动化总结

测试夹具测试夹具也就是测试用例的前置条件及后置条件,分为两个类型:接口依赖代码依赖数据类型(非常容易出错)excel中参数化数据的替换数据库操作测试驱动测试数据测试驱动思想测试驱动代码实现断言一般用例断言成功用例断言异常及日志处理...

2021-02-18 15:40:31 1116 1

原创 web自动化实战之allure测试报告

allure介绍Allure框架是一个灵活的轻量级多语言测试报告工具,它不仅以web的方式展示了简介的测试结果,而且允许参与开发过程的每个人从日常执行的测试中最大限度的提取有用信息。从dev/qa的角度来看,Allure报告简化了常见缺陷的统计:失败的测试可以分为bug和被中断的测试,还可以配置日志、步骤、fixture、附件、计时、执行历史以及与TMS和BUG管理系统集成,所以,通过以上配置,所有负责的开发人员和测试人员可以尽可能的掌握测试信息。从管理者的角度来看,Allure提供了一个清晰的“大图

2021-02-18 13:41:26 777

原创 接口自动化测试介绍

1

2021-02-18 11:03:18 980

原创 接口自动化实战之持续集成

什么是持续集成?为什么要进行持续集成?什么是jenkins?为什么选择jenkins?安装jenkins持续集成实战构建项目在jenkins首页中,点击新建item:进入构建页,可看到有很多可以构建的类型,这些都是需要安装插件才会有的,现在我们暂时用不到。我们先输入一个任务名称,然后选择:Freestyle project,点击确定:接着进入构建的详细配置。这里我们先不设置,直接点击标签:返回至项目的主页面,点击Build Now进行构建。由于我们没有进行设置,没有添加代码,所以现

2021-02-17 00:46:39 2018

原创 接口自动化实战之投资接口

接口介绍excel测试用例代码实操先跑起来!问题1:接口依赖问题2:excel测试用例中参数化的替换问题3:数据库表的断言

2021-02-16 19:09:23 286 1

原创 接口自动化实战之审核接口

接口介绍excel测试用例代码实操先跑起来!问题1:接口依赖问题2:Handler优化问题3:excel测试用例中参数化的替换问题4:审核是否成功的断言

2021-02-08 23:12:01 918 1

原创 接口自动化实战之添加项目接口

接口介绍excel测试用例代码实操先跑起来!问题1:接口依赖问题2:excel参数化数据替换优化

2021-02-08 16:27:01 521

原创 接口自动化实战之充值接口

接口介绍excel测试用例代码实操先跑起来!首先先通过Handler准备好三大组件的初始化(yaml_handler、excel_handler、logging_handler),接着通过excel_handler获取recharge工作表的所有数据:test_recharge.pyimport ddtimport unittestfrom middleware.Handler import Handler#初始化yaml_handleryaml = Handler.yaml#初

2021-02-08 11:38:11 2699 2

原创 接口自动化实战之登录接口

pass

2021-02-08 11:37:22 1000

原创 接口自动化实战之注册接口

接口介绍代码实操问题1:excel中数据类型的转换test_register.pyimport unittestimport ddtimport osfrom common.excel_handler import excel_handlerfrom common.request_handler import requests_handlerfrom config import config#准备数据驱动@ddt.ddtclass Test_demo(unittest.TestC

2021-02-08 11:27:18 1584 2

原创 APP自动化基础之界面操作

操作类型跟selenium一样,appium也分为两种操作类型:单一操作、动作链条单一动作跟selenium一样,appium中的webdriver中单独封装了一些单一、简单的操作,包括:滚动、拖拽、点击、滑动等。源码class ActionHelpers(webdriver.Remote): def scroll(self: T, origin_el: WebElement, destination_el: WebElement, duration: Optional[int] = N

2021-02-06 09:53:14 529

原创 APP自动化实战之原生app测试

框架设计PO设计代码实战登录失败用例场景分析测试步骤代码进入题库用例场景分析测试步骤前置条件问题:要找的元素在页面下方需要滑动怎么办?代码

2021-02-06 09:46:19 561 1

原创 APP自动化基础之toast定位

什么是toast?toast是用来提示信息的一种控件。它是一种很方便的消息提示框,会在屏幕中显示一个消息提示框,没任何按钮,也不会获得焦点一段时间过后自动消失!android中的toast规范出现在屏幕底部。只能放文字不能带图标,文字要精简不宜太长。不是模态的,可以透过Toast对其他控件进行操作。短时间后会自动消失。不能对Toast进行交互,不能手动操作让Toast主动消失。注意这仅仅只是规范,很多app中的toast都有打破这个规范。toast定位前提toast是uiautoma

2021-02-02 23:36:38 1368

原创 APP自动化实战之混合应用测试

什么是混合应用?一句话:Html5页面 + 原生页面。混合应用不是在app上直接写HTML5的页面,而是把HTML5页面放进一个webview中。什么是webview?webview是原生应用的一个控件,可以嵌套h5页面,另外还有可以嵌套图片的imageview等。webview能做到和web页面进行交互的功能。拓展:安卓原生组件有哪些?imageview,用于显示图片textview,用于显示文本layout,相当于html中的、button,用于显示按钮check

2021-02-02 22:59:22 483

原创 APP自动化基础之appium

appium与selinium的关系appium原理

2021-01-23 00:38:14 673

原创 APP自动化基础之元素定位

mobileby在开始讲元素定位的方式时,我们先来看下appium中元素定位的相关模块:mobileby.py:在这里可以看到,MobileBy这个类继承了selenium中的元素定位的类:By,然后根据手机特性又另外自己写了一堆元素定位的方式。所以理论上,对于android app的元素定位来说,既能使用selenium中的八大元素定位方式,也能使用android所特有的4个定位方式。from selenium.webdriver.common.by import Byclass Mobile

2021-01-22 23:50:36 1624

原创 APP自动化基础之APP自动化测试介绍

什么是APP自动化测试?APP自动化测试就是利用工具或自动化代码来自动进行app端的ui测试。APP自动化测试与接口自动化测试的比较APP自动化测试与web自动化测试的比较APP开发的技术栈与web开发技术栈的区别APP自动化测试与web自动化测试的区别...

2021-01-19 11:35:55 370

原创 APP自动化基础之app类型介绍

APP分类原生app概念技术栈webapp概念技术栈混合app概念技术栈如何区分原生app和webapp?

2021-01-19 10:00:16 411

原创 APP自动化基础之环境准备

APP自动化测试所需要的环境以下是进行app自动化测试前需要准备的环境清单:手机appnium clientappnium serverjdkandroid sdkAPP自动化测试环境与web自动化测试环境的比较web自动化测试中所需要准备的环境如下:selenium client。也就是python中写selenium代码所需的开发环境selenium server。也就是webserver,根据浏览器不同又分ChromeDriver、FirefoxDriver、IEDriver

2021-01-19 09:24:55 349

原创 web自动化实战之BasePage

背景页面行为分类什么是BasePage?哪些页面行为可以被封装成basepage?代码实战

2021-01-17 12:48:08 1800

原创 web自动化前置准备之selenium原理

原理初探我们使用python语言来写selenium代码,目的是为了让网页按照我们的预期来自动化实现一些效果,比如:自动点击、自动输入字符、自动提交表单等。而我们操作网页的方式跟我们实际上网操作的那样,用鼠标定位到需要操作的地方,然后通过鼠标或键盘的一些动作来执行操作;但又有点不太一样,不一样的地方在于,我们定位到需要操作的地方是通过元素,也就是html中对应的标签去定位;而执行操作的方式,就是通过修改dom对象的属性来实现。所以,我们通过selenium来使网页自动化进行操作,实际上操作的是网页的htm

2021-01-16 22:24:04 399

原创 web自动化实战之复杂用例的实现

登录未授权场景输入未授权的用户名及密码,点击登录后会弹出提示:此账号没有经过授权,请联系管理员!这个提示会一闪而过,所以一般的打开F12-elements直接定位是定位不到的。那么该如何定位呢?提示框的定位在这里我们可以打开F12,切换到Sources,这里有个调试功能,我们在输入用户名、密码,点击登录按钮后,可以按下暂停按钮,这样就能定位到一闪而过的提示框了:定位好元素后,剩下的部分就跟之前登录的测试一样了!初步代码login_data.py#登录未授权数据"""封装登录操作所需要

2021-01-15 14:33:21 657

原创 web自动化实战之PageObject

背景现在两个测试用例,一个登录成功的,一个登录失败的,它们只剩下三个步骤了,一个是访问登录页面,这个两者都是相同的,都是访问同一个url;另一个则是定位元素+元素操作(假设login_error_01中定位了用户名、密码输入框,然后sendkeys为空 ),它们的定位方法、元素表达式都是相同的,都是定位的用户名、密码输入框;最后一个是断言,但是这两个用例用来断言的预期结果和实际结果都是完全不同的。那么分析到这,我们有没有什么办法能再进行一层封装呢?我们可以发现,这两个测试用例都是在同一个页面下进行的,都

2021-01-14 10:00:17 614 1

原创 web自动化实战之pytest

pytest实战pytest下的命名规则背景pytest以特定规则搜索测试用例,所以测试用例文件、测试类以及类中的方法、测试函数这些命名都必须符合规则,才能被pytest搜索到并加入测试运行队列中。默认搜索规则如果pytest命令行有指定目录,则从该目录中开始查找测试用例文件,如果没有指定,则从当前运行目录开始查找文件。注意,该查找是递归查找,子目录中的文件也会被查找到。并不是能够查找到目录下的所有文件,只有符合命名规则的文件才会被查找。默认规则是以test_开头或者以_test结尾的.py文件

2021-01-09 17:45:12 1096

原创 web自动化实战之框架搭建

接口测试框架复用接口自动化测试框架是可以直接搬过来用的,我们只需复制过来即可。excel测试用例的编写web测试用例与接口测试用例相比,可以去掉接口名称、请求方法、数据这三个字段,因为我们不需要请求接口;另外url也可写可不写,因为接口测试一般需要在多个环境运行,所以写上url后与yaml中的host拼接比较方便;而web自动化测试一般是在线上运行,所以可以直接在配置文件中写好url即可,当然excel中写上也可以。登录测试用例...

2021-01-07 07:49:38 581

原创 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 197

原创 web自动化基础之js操作

为什么有了selenium还需要执行js操作?前面我们讲过,selenium之所以能操纵浏览器,是因为我们写好的selenium代码它会经过处理后作为参数通过http协议传给webDriver服务端,webDriver再根据请求来决定向浏览器发送什么样的js代码,浏览器的js解释器执行js代码之后就达到了我们web自动化预期的效果。那么为什么有了selenium封装的那么多指令,还需要执行js呢?因为有一些指令js是没有封装的。比如说修改某个元素的属性,selenium中是没有封装这样的方法的:所以要

2021-01-03 15:20:43 923

原创 web自动化基础之页面操作

什么是actionChains?actionChains,直译过来是动作链条,也称为行为事件,是selenium中专门用来处理鼠标、键盘操作的模块,它可以模拟一些键盘、鼠标的操作,如:按某个键、输入字符、点击、悬停、拖拽等。actionChains底层代码初探init我们先来看actionChains的__init__方法。 def __init__(self, driver): """ Creates a new ActionChains.

2021-01-02 22:32:00 701

原创 web自动化基础之三大切换

为什么要切换?要定位的元素在B(可以是B窗口、B-iframe、主页面),但现在却在A这边(可以是A窗口、A-iframe、弹窗),所以要切换到B这边才能定位到元素。窗口切换如下,我们要进行如下的操作。第一步,在百度搜索框输入关键字,点击“百度一下”按钮:在返回的搜索结果中点击百度百科:在百度百科页定位到“作品背景”超链接:代码如下:from selenium import webdriver#初始化chrome浏览器driver = webdriver.Chrome()#获取

2020-12-27 22:27:19 327

原创 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 190

原创 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 642 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 193 1

原创 web自动化前置准备之html

什么是html?html翻译过来是超文本标记语言。那么这里就需要解释下什么叫超文本,什么叫标记语言。所谓超文本就是超越了普通文本的文本,它是文字、视频、图片、音频等的混合体,最关键的是含有超链接,能够从一个文本跳转至另一个文本。而正因为是超文本,它不像TCPIP协议中底层的复杂、普通人无法看懂的二进制包形式,它是完整的、有意义(正常人能看懂)的数据。第二个要解释的是标记语言。标记语言是用来存储信息,但不具有任何行为,而编程语言是有行为的,也就是可以调用各种函数、方法等对信息进行各种灵活的处理。它跟编程

2020-12-13 21:15:07 338 2

原创 接口自动化实战之项目搭建

框架总体介绍框架搭建首先创建一个新的python项目,

2020-12-13 17:45:33 734 2

原创 web自动化前置准备之selenium环境准备

python中selenium库安装通过pip install selenium即可安装selenium库浏览器驱动使用谷歌浏览器,就需下载chromeDriver使用火狐浏览器,就需下载firefoxDriver由于chromeDriver的官方下载需要科学上网访问国外的网下,所以这边提供一个国内的镜像网站:https://npm.taobao.org/mirrors/chromedriver那这么多版本,应该下哪个呢?规则是,最好与浏览器版本对应。如下,我这边浏览器版本是这个:所

2020-12-04 07:46:40 203

原创 web自动化前置准备之web自动化测试介绍

什么是selenium?浏览器自动化的框架,用来做web自动化测试(注意一个误区,selenium不是专门的测试工具,仅仅是因为它能做web自动化,然后拿它来实现web自动化测试而已)为什么要做web自动化测试?用来替代以下测试:(1)重复的手工工作(2)冒烟测试(3)回归测试(4)正向用例web自动化测试 vs 接口自动化测试由上图可以看出,web自动化测试属于金字塔最顶端,属于成本最高、效用最低的测试;而接口自动化测试属于集成测试,比web自动化成本更低、效用更高;单元测试看起来虽然

2020-12-02 07:51:05 365

原创 接口自动化测试框架之pymysql

为什么接口自动化需要操作mysql?业务需要接口测试中很多业务场景会涉及到mysql的增删改查操作,如注册这个常见的业务,注册成功后,需要往user表新增一条新的记录;注册时输入账号,需要去user表查询这个账号存不存在,存在了就不能注册,不存在则能注册;修改密码,需要去到user表中修改password字段的值;删除用户,需要去到user表中删除记录。凡是业务上涉及到数据库的增删改查操作,接口自动化测试中都需要操作数据库。存放测试数据数据库也是一个不错的存储测试数据的地方。当测试数据过多时,我们也

2020-10-26 23:36:27 547 2

原创 接口自动化测试框架之requests

手工如何请求接口?python中如何请求接口?代码实操get请求post请求get请求传递参数post请求传递参数

2020-10-19 21:50:58 481 1

原创 接口自动化测试框架之yaml

什么是配置文件?配置文件是指项目当中,对项目进行配置(设置)的一些数据。如:通过openpyxl读取excel时传入的excel文件路径是一条配置数据;logging封装中传入的日志名称、日志收集器级别、流处理器级别、文件处理器级别等都是配置项,都可以写入配置文件当中。配置项在当前环境、当前项目不会有变化,但对于不同的项目,不同的环境可能需要变化。为什么要使用配置文件?那之前封装好的log_handler举例。函数log_handler中有多个传入参数,此时我想修改stream_level,把原来的

2020-10-06 17:05:53 1853

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除