-
2020-12-09 02:24:33
首先说说为什么想起来用自动化脚本来实现该项目的自动化。
工作还是以手工测试为主,业务驱动型的项目大概就是这样,业务不停地变,不断的迭代。
自动化测试实施的先决条件:
一 得有时间。
如果有时间大部分的项目都可以实现自动化,这是毋庸置疑 的。不过一般公司的手工测试岗位测试任务之繁重做过的同学应该有体会。我自己负责五个产品线的迭代版本,不得一刻空闲,几乎每天都埋在业务测试中。
二 得有必要。
成本与效率之间很多时候在我所经历的项目中会倾向于手工测试,可以说是严重倾向于手工测试。 大部分迭代版本手工测完上线只需半天或者一到两天,不停地迭代,几乎没有稳定的时候。这些不稳定的版本用自动化实现效率并不比手工测试高。自动化测试更适合于回归测试、接口测试、数据测试。
回归当前项目,页面的兼容性、图形验证等使用手工测试,数据验证部分使用自动化脚本。因为数据部分的变更频率低,并且每天数据都会更新。数据量大且核对数据耗时长,所以有实现自动化的必要性。时间嘛,上班肯定没有,那就下班留。能遇到一个适合自动化的项目也是缘分。
再说说脚本编写和完善的过程。
确定思路
明确如何取接口数据(requests库),如何取页面数据(selenium)。
按照思路开始写
整个项目脚本写的第一版一整段代码,没有函数,没有类。从上到下不停地取页面元素,然后请求对应的接口,对比数据。先写出一版来实现必要的功能。
优化
写着写着会发现很多问题,比如重复代码,接口和页面混合代码混合在一起等等。进行了一些优化:封装了接口类;页面基类,测试页面类;重复代码抽取函数; 引入unittest测试框架;写配置;打日志;截图加上时间戳等等。当然后续还需继续优化。
分享
跟团队分享,写博客。
最后的项目目录
the end!
更多相关内容 -
基于python的UI自动化操作
2021-06-07 16:58:17Python+selenium,适合刚入门测试的小白学习,简单明了,有一定的python基础 -
最新版python UI自动化脚本源码
2021-03-11 11:23:36UI自动化源码 -
python UI自动化(一)
2022-02-11 14:10:02一直以来都不是很想做UI自动化,原因:系统的稳定性差,UI界面经常变化等等。但是遇到接口又不稳定,还经常从接口写入的数据有误的而界面UI相对不是很复杂的情况下,UI自动化也是可以考虑的。比如最近在遇到一系统,...前言:
一直以来都不是很想做UI自动化,原因:系统的稳定性差,UI界面经常变化等等。但是遇到接口又不稳定,还经常从接口写入的数据有误的而界面UI相对不是很复杂的情况下,UI自动化也是可以考虑的。比如最近在遇到一系统,研发明确的说不要用接口进行写入数据,要从界面上模拟用户真实的操作,其实也是可以理解的,前后端分离,好多控制什么的后端接口没有做处理,为了给用户快速的展示或是项目快速的完工,都让前端做了限制,这样更直观些。但如果遇到一个测试有多少条多少条数据时才怎么怎么样,出现什么样的结果。这时如果还是手动去执行真是要哭了。不让用接口,只能想到用简单的UI自动化了。所以就只好把放弃了好久的UI自动化知识重新拾起来啦。不啰嗦了,转入正题。
准备环境
现在UI自动化也有很多方法,我选择的是python+selenium+HTMLTestRunner
需要准备的是python环境。个人学习研究使用,所以开发工具使用的是破解pyCharm。安装破解在此就不多说了,网上有很多,待安装破解完成后弄个简单的实例进行测试一下。需要安装chrome驱动浏览器,可以在“https://chromedriver.storage.googleapis.com/index.html”中找到当前自己电脑对应的版本下载。
如果是使用的是python3时,会遇到pip install HTMLTestRunner.html安装失败,因官网的是支持python2的,语法与python3不兼容,所以需要到官网http://tungwaiyip.info/software/HTMLTestRunner.html下载,下载后修改相应的内容后放入到python安装目录的lib下,即可。HTMLTestRunner.py 修改内容:第94行,将import StringIO修改成import io
第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()
第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:
第631行,将print >> sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime)修改成print(sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime))
第766行,将uo = o.decode(‘latin-1’)修改成uo = e
第772行,将ue = e.decode(‘latin-1’)修改成ue = e实例:
import unittest import time import HTMLTestRunner from selenium import webdriver class MyTestCase(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome('E:\\0-auto\driver\\chromedriver.exe') #手动指定chrome驱动程序路径 self.driver.implicitly_wait(10) #设置隐式等待时间 self.base_url = 'http://www.baidu.com' def test_search(self): u''' test search ''' driver = self.driver driver.get(self.base_url) #打开网址 driver.find_element_by_id('kw').send_keys(u'谷爱凌') #定位输入框,输入搜索内容 driver.find_element_by_id('su').click() #定位按钮,并点击 time.sleep(2) def tearDown(self): self.driver.quit() if __name__ == '__main__': with open('report_search.html','wb') as fp: #当前路径下打开一个文件,用于报告写入 runner = HTMLTestRunner.HTMLTestRunner( #使用HTMLTestRunner生成报告 stream=fp, title='report_search', description=u'running case:' ) runner.run(MyTestCase('test_search'))
执行结果
-
如何用Airtest编写UI自动化脚本
2020-12-05 02:08:52前言游戏并不像app一样直接把渲染树节点暴露出来,这就造成游戏UI自动化在元素定位上的不方便性,不过依赖airtest的图片识别,我们可以直接跳过元素检查,以图片对比的形式进行自动化,虽然效率可能会低一些,但是...前言
游戏并不像app一样直接把渲染树节点暴露出来,这就造成游戏UI自动化在元素定位上的不方便性,不过依赖airtest的图片识别,我们可以直接跳过元素检查,以图片对比的形式进行自动化,虽然效率可能会低一些,但是至少也是自动化了。
脚本文件的创建
首先需要创建脚本文件,airtest提供了两种格式的文件——.air后缀和.py后缀;
虽说分开了两种,但两者之前其实差别不是很大(源码中.air文件最终也是较换成.py文件执行),具体选择哪个看个人喜好,个人比较喜欢纯python文件,因此创建的为.py后缀的文件
设置文件保存的路径及文件名
设定好之后直接点击下方的ok按钮,airtest即会自动生成如下的python文件
设备的连接
设备的连接这里就不细讲了,直接用connect连接便可,若发现连接失败,尝试点击connect右侧的下拉框选择use javacap或者其它
脚本的编写
airtest由于其傻瓜式设计,让脚本的编写变得非常简单,基本上只要了解python的while/for循环、等待,就可以应对大多数的脚本编写
以腾讯动漫举个例子,为其设定一个自动化需求为:
1.打开app
2.登录
3.跳转到QQ授权界面取消授权
4.再登录
5.跳转到QQ授权界面确定授权
6.登录成功
7.搜索漫画“尸兄”
8.退出登录
9.不停重复登录到退出之间的操作以确定是否有问题
当然,app的自动化目前主流是appium,不过airtest的纯UI识别也是可以做app的自动化,因此在此用更为方便的app,而不是游戏
我们首先进行需求分析,“不停重复登录到退出之间的操作”说明我们需要使用的是while循环,而前面的流程我们只需要按顺序写好就行了
打开app(最好是用package名去打开,这里因为懒得去翻腾讯动漫的包名,便直接以ui识别的形式打开):
打开我们只需要点击一次app即可,因此
先点击左侧的touch按钮,点击后会出现截图的效果,直接移动到腾讯动漫的图标上,把动漫的图标截图下来,airtest会自动在.py文件上生成touch代码
由于打开app需要等待一段时间让app初始化一下,大概5秒,我们但要引入python的等待time.sleep(5):
跳转到登录页签:
再将while True写上:
我们手动将app打开,再对后续的步骤每一步用airtest截好对应的操作图:
“点我登录”
跳转到登录方式后,我们要点击QQ登录
后续的都是这样一步一步截图即可,这里就暂略了
脚本的执行
脚本的执行只需要点击上方对应的三角按钮即可
LOG
对于不太懂python的人来说,log查看窗打印的东西可能看不懂,因此有参考价值的只有报错时间(哪一步的报错会直接在代码出置红显示)
-
python_Web UI自动化脚本第一篇
2019-10-11 17:33:111. 安装python环境,3.7 官网下载 :https://www.python.org/ 配置环境变量:python的安装地址 2. 安装pycharm 社区版 官网地址:http://www.jetbrains.com/pycharm/ 3. 配置pycharm的python环境 ...1. 安装python环境,3.7
官网下载 :https://www.python.org/
配置环境变量:python的安装地址
2. 安装pycharm 社区版
官网地址:http://www.jetbrains.com/pycharm/
3. 配置pycharm的python环境
4. 在pycharm里面安装selenium包
4-2 在pypi网站下载webdriver的浏览器驱动(一般用火狐浏览器,所以下载一个火狐浏览器的插件就可以了)
4-3 将浏览器驱动放在python的安装目录script目录下面,并将其配置到环境变量path中
5. 测试网址 https://www.baidu.com/
6. 测试代码如下:
ok,一个简单的程序就完成了,这里面主要是环境配置的问题,如遇到运行不成功的,可以找我私聊哦!
-
Python+Selenium.webdriver实现WEB端UI自动化测试(实例脚本)
2021-09-23 15:15:16本篇记录基于Python+Selenium.webdriver实现WEB端UI自动化测试,其中测试用例使用excel维护。为了在实际项目种的扩展应用,建议学习webdriver的元素定位方法,欢迎在评论区沟通讨论。 1.项目选取(登录页无验证码... -
python实现自动化上线脚本的示例 分享帮忙写一个python自动脚本完成以下步骤
2021-04-27 02:57:05有什么Python写的代码发布,自动上线或者是配制管好像 git hook 可以实现自动发布怎么样通过Python实现自动添加脚本头信息的示例代码#。/usr/bin/python#title :test4.py#description :I am test script#author :... -
Python selenium 自动化脚本打包成一个exe文件(推荐)
2020-12-23 10:12:08打包Python selenium 自动化脚本(如下run.py文件)为exe执行文件,使之可以直接在未安装python环境的windows下运行 run.py文件源码: 文件路径:D:\gongcheng 注:chromedriver.exe 文件在D:\gongcheng目录下 #!/... -
UI自动化(200行python实现)
2022-01-03 22:36:31自动化功能模块:(由于注释写得较多,这里不多赘述) RPA.py import subprocess import time import pyautogui import pyperclip pyautogui.FAILSAFE = True # 防故障安全措施 release_list = [] # 释放键位列表... -
使用python进行windows系统UI自动化
2022-04-11 10:58:50其实,用python进行windows端UI自动化的库有很多,比如pywinauto等,本文介绍一个使用autoit3来实现的 pyautoit 库。 pyautoit 是一个用python写的基于AutoItX3.dll的接口库,用来进行windows窗口的一系列操作,也... -
【基于python实现UI自动化】2.0 selenium环境搭建
2020-12-21 18:18:58【基于python实现UI自动化】selenium环境搭建[1.0 selenium工具介绍](https://blog.csdn.net/lht3347/article/details/111246921)Windows搭建安装Python安装Selenium安装过程中出现的问题Selenium版本升级安装... -
软件测试肖sir__python之ui自动化基本介绍(1)
2021-11-16 09:45:20(2)什么是ui自动化? ui 是(界面设计) 通过模拟手工操作用户UI页面的方式,用代码取实现自动化操作和验证的行为。 (3)UI自动化的优点? 1、解决重复性功能测试和验证 2、减少测试人员在回归测试时用例漏测和... -
(appium+python)UI自动化_07_app UI自动化实例【叮咚搜索加车为例】
2021-02-03 13:57:46前言初学UI自动化的小伙伴,在配置好appium+python自动化环境后,往往不知道如何下手实现自动化。小编在初期学习的时候也有这种疑惑,在此以叮咚买菜app-搜索加车为实例,展示下appium是如何实现自动化的。前提:已... -
UI自动化登录(python+selenium)
2022-01-27 09:28:05UI自动化登录(python+selenium) -
python UI自动化无界面运行
2021-12-28 13:53:46但有时我们需要脚本在Linux环境进行运行,一般Linux是无用界面的所有使用之前的脚本会有报错。解决方案如下: 让用例在Linux环境无界面执行。 #!/usr/bin/env python # -*- coding: utf-8 -*- import time from... -
QA-CRM-UI自动化脚本
2021-02-24 10:38:42QA-CRM-UI自动化脚本 - common 全局公共方法,公共exe文件 - data 用例数据 - error_img 错误截图 - logs 日志文件 - report 测试报告 - src page and cases - all_path.py 全局路径 - config.ini 公共数据配置 - ... -
Python开发游戏自动化后台脚本
2021-10-13 19:54:43Python开发游戏自动化后台脚本前言说明获取窗口句柄获得后台窗口截图数字识别识别并点击图片位置后台文字输入完整代码参考 前言 前段时间沉迷猪场一梦江湖,由于实在太肝便萌生出用脚本做日常的想法,写了第一个test... -
软件测试肖sir__python之ui自动化封装和单元测试框架
2021-11-17 15:48:44一、ui自动化封装 题目: ui自动化用例封装案例: 1、将论坛的登录还有点击模块管理 通过类来进行封装(给实参) 2、将论坛的登录还有点击模块管理 用例封装(给形参)且通过类的传递完成调用 二、单元测试框架 unittest... -
通用UI自动化测试框架源码
2019-03-10 13:02:09写过UI自动化测试脚本的朋友,相信都会遇到过,比如前端页面元素改了,又需要去改自己写的脚本,而且只能针对某个web页面的定制化设计,换个web项目就不灵了。 我就在考虑,为什么UI自动化框架就不能通用在不同的... -
Python+Appium自动化测试-编写自动化脚本
2020-10-28 15:01:06我们实际跑自动化脚本的过程中,是需要用脚本调用appium启动app的,接下来就尝试写Python脚本启动app并登陆app。环境为Windows10 + Python3.7 + appium1.18.0 + Android手机 + 今日头条app + Pycharm 一,连接测试... -
Python+Appium来写app自动化脚本
2019-06-19 20:31:001...........................我有空再补 转载于:https://www.cnblogs.com/zhu520/p/11054474.html -
python 基于unittest写接口自动化脚本
2020-02-20 17:11:02python 基于unittest写接口自动化脚本一、项目介绍1. 用例写法2. 执行结果3. 项目目录二、核心代码1. request_api.py2. tool.py3. 某个接口的request文件3. 某个接口的testcase文件三、报告1. Web报告四、后言1. ... -
Python UI自动化 编程(一) UIAutomation
2021-07-26 10:58:34Python UI自动化 编程 第一章 Python 机器学习入门之pandas的使用 文章目录Python UI自动化 编程前言一、什么是Python UI自动化 编程二、环境说明1、Python环境:Python 3.82、IDE: Pycharm3、使用的库:UI... -
Python 脚本自动获取验证码解决UI自动化识别问题
2020-07-31 16:18:35解决UI自动化过程中的图文验证码问题,过程大致分为两个步骤: 通过网页自动下载网页上指定的图片 识别图片上的文本内容 本文以“识别页面上指定图片的文本“为例。 以百度首页的 Baidu 为例。 环境准备 ... -
APPium+Python编写真机移动端自动化脚本
2022-03-07 23:44:51完成软件和环境的安装后就可以开始移动端自动化脚本的编写了。 连接设备 手机打开USB调试模式,连接手机。此时去命令窗口查看自己的设备是否已经连接。 让后打开Appium Server,进行配置,设置Android与... -
Airtest UI自动化框架-其他
2021-06-12 12:03:06Airtest是一个跨平台的UI自动化框架,适用于游戏和App。 快速开始 各种运行: Airtest提供了跨平台的API,包括安装应用、模拟输入、断言等。 基于图像识别技术定位UI元素,你无需嵌入任何代码即可进行自动化。 扩展... -
python+selenium+unittest自动化测试demo
2018-10-09 16:09:55使用python+selenium+unittest自动化测试框架编写的一个demo,可实现测试用例管理,批量执行用例,生成测试报告,自动发送邮件等功能 -
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2021-01-01 06:08:44数据驱动是一种思想,让数据和代码进行分离,比如爬虫时,我们需要分页爬取数据时,我们往往把页数 page 参数化,放在 for 循环 range 中,假如没有 range 这个自带可以生产数字序列的方法可以用,我们是不是得手动... -
一次简单的ride写UI自动化脚本尝试
2021-04-04 23:40:57一次简单的ride写UI自动化脚本尝试 使用的python版本和其中一些模块的版本: python3.7.9 模块列表: 因跑脚本的浏览器是谷歌浏览器: 还需要根据谷歌浏览器的版本下载对应的chromedriver.exe的版本。将该文件分别...