前言:

一直以来都不是很想做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 timeimport HTMLTestRunner
from selenium import webdriverclass 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.driverdriver.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'))

执行结果

python UI自动化(一)相关推荐

  1. python ui自动化配置文件,python UI自动化实战记录八:添加配置

    添加配置文件写入测试地址等,当环境切换时只需修改配置文件即可. 1 在项目目录下添加文件 config.ini 写入: [Domain] domain = http://test.domain.cn ...

  2. python ui自动化_pythonUI自动化整理

    python实现UI自动化整理 1.用到的包 selenium 常见的浏览器操作 openpyxl 读写处理excel数据参数 PyMySQL(python3) 读写mysql数据库 unittest ...

  3. python UI自动化知识点总结

    关于python自动化的知识点问答 使用selenium做自动化测试常见问题 1.selenium中如何判断元素是否存在? isElementPresent 2.selenium中hidden或者是d ...

  4. appium示例代码python_(appium+python)UI自动化_07_UI自动化实例【拼多多搜索商品为例】...

    前言 初学UI自动化的小伙伴,在配置好appium+python自动化环境后,往往不知道如何下手实现自动化.小编在初期学习的时候也有这种疑惑,在此以拼多多搜索为实例,展示下appium是如何实现自动化 ...

  5. python 苹果试玩_(appium+python)UI自动化_01_自动化环境搭建【MAC版】

    Appium简介 Appium是一个开源的.跨平台的测试框架,主要用来进行app UI自动化,适用于原生应用.混合应用和移动网页应用(H5页面).目前支持Python.JavaScript.Objec ...

  6. python ui自动化测试仪器_python UI自动化测试

    为了减小维护成本: 1.UI自动化测试需要有较为稳定的环境 2.代码设计合理,那么我们就需要面向对象的设计一个框架,将重复的代码模块化 一.首先总结一下 UI自动化大概要哪些模块 1.config(配 ...

  7. python ui自动化脚本_ui自动化:python+appium----环境搭建

    前言: appium可以说是app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本支持java和python.以下为python+appium的安装教程... 环境准备... ...

  8. python代码设计测试用例_(appium+python)UI自动化_08_unittest编写测试用例

    前言 unittest是python自带的单元测试框架,类似于Junit(Java单元测试框架).支持自动化测试,可编写测试前置&后置条件,并且可批量运行测试用例并生成测试报告. 使用unit ...

  9. python ui自动化配置文件,Python+Selenium进行UI自动化测试项目中,常用的小技巧2:读取配置文件(configparser,.ini文件)...

    在自动化测试项目中,可能会碰到一些经常使用的但 很少变化的配置信息,下面就来介绍使用configparser来读取配置信息config.ini 读取的信息(config.ini)如下: [config ...

  10. python selenium unittest_python+selenium+unittest——ui自动化的轻量级选择

    最近项目部分趋于稳定,部分功能进入了维护阶段,但每次的小改动都需要进行回归测试,回归的用例不多但也算是重复劳动浪费资源.为了节约这部分人力,我考虑引入web的ui自动化.之前在其他项目中用的都是jav ...

最新文章

  1. p2p网络测试工具_自媒体 IPFS官方升级DHT方案,提升网络整体性能
  2. flash与动画:打字动画(2)
  3. LinDaiDai的 2019 面试准备
  4. 裂墙推荐!再也不用求后端给接口了...
  5. Nginx初探索之安装、启动、关闭和重启
  6. Mysql约束 笔记
  7. 启动服务提示-bash: mongod: command not found
  8. duilib之源码分析
  9. IIS网站无法播放视频的解决方法
  10. linux中如何解决文件已删除但空间不释放的案例
  11. xml+css+sql+json+html+js格式化,JavaScript格式化json和xml的方法示例
  12. Hadoop CapacitySchedule配置
  13. 居民身份证号码查询系统
  14. java动手写cmpp服务_Java动手微服务简介
  15. ubantu 搭建我的世界java服务器 spigot核心
  16. 掌握一门计算机语言需要多长时间,学习一门语言需要多长时间?科学告诉你
  17. 实现spring+mybatis+uncode dal,应用自动切换连接数据库
  18. 韩顺平php ecshop,ecshop教程
  19. CSS CSS3 pdf 电子书大全 百度云
  20. 发现个不错的网盘类似百度云盘 支持磁力云预览,离线下载 20G

热门文章

  1. 校验码的计算方法说明
  2. 学堂云3大学计算机基础答案,学堂云3答案查询公众号
  3. kb931125—rootsupd_kb931125补丁下载
  4. CAD软件中怎么计算雨水?CAD雨水计算技巧
  5. 计算机网络课设--小型企业网络的规划与设计
  6. 怎么在HTML图片中加文字,html+css怎么在图片上添加文字
  7. 为什么你买不到一台好用的机器人?因为没有你的代码
  8. HTML5技术的调研以及贴吧应用总结
  9. android 自定义取色器,Android Studio设置颜色拾色器工具Color Picker教程
  10. Linux 基础命令(九)—— 逻辑卷管理(LVM)