自动化测试框架

RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作)

爱⌒轻易说出口 提交于 2020-02-03 03:25:11
在自动化过程中,我们经常需要连接不同的数据库,并且对数据库进行很多不同的操作,RobotFramework中,提供了DatabaseLibrary这个库来操作数据库,我们可以按照官网中的说明来安装DatabaseLibrary库,在浏览器中访问 http://franz-see.github.io/Robotframework-Database-Library/ 页面,即可以看到该库的相关安装说明和API介绍。 在使用DatabaseLibrary库时,需要在测试套件中,预先导入该库,才可以在用例中使用DatabaseLibrary库中的关键字,这里以Mysql数据库为例,讲述Databaselibrary库的使用 要链接到mysql,除了要导入DatabaseLibrary库外,还需要安装pure-Python MySQL client library,可以通过https://github.com/PyMySQL/PyMySQL 下载该库,并且进行安装,或者直接通过cmd命令行pip install PyMySQL来进行安装 1.1.1 如何连接数据库 1、可以通过DatabaseLibrary库中的Connect To Database关键字来链接一个mysql数据库,此处以链接本机mysql库为例 数据库用户名:root 数据库密码:root Mysql数据库端口:3306

书籍

若如初见. 提交于 2020-01-29 23:48:07
1.《Selenium2(JAVA) Web自动化测试实战》 本书是结合目前最流行的web测试框架selenium进行详细全面的讲解,且有大量实例,可以网上购买电子版,书中的代码可以下载。 2.《Selenium 2自动化测试实战:基于Python语言》 推荐虫师的这本Selenium入门书籍,经常关注虫师的博客,里面干货不少。 3.《QTP自动化测试最佳实践》 详细介绍了基于QTP的自动化测试技术,适合自动化测试初学者阅读。因为QTP是付费软件,如果所在公司或项目组能使用正版,那真是个深入学习的好机会。 4. 《QTP自动化测试权威指南》 如果想进阶学习QTP,则 Tarun Lalwani 的书是个不错的选择,该权威指南本书讨论了针对创建一个复杂的自动化测试框架的几乎所有内容。 5.《JUnit实战(第2版)》 Junit是单元测试常用框架,常用来构建自动化测试,所以推荐该书。 关于移动端的自动化测试相关书籍我没有买过,以前的公司提供了很多相关文档,可以结合常用的测试工具:MonkeyTalk、monkeyrunner、Robutium、Appium来学习。 来源: https://www.cnblogs.com/hui2/p/10813580.html

测试成长之路

走远了吗. 提交于 2020-01-29 15:46:39
“这个问题是写给想要做自动化测试的人,或许你以为软件测试的门槛很低,低到任何人都可以做,随便点点就可以了,这个行业太low了,所以你想做自动化测试,提升自己的逼格,我想说手工测试并不low,如果让一个什么都不懂,一点业务基础都没有的人去做测试,能测出来问题吗?不要忽略你的业务知识储备.” 以上文字,引自 Young 的原话, 说的太对了,不仅是自动化测试的,手工测试的也是如此的。 测试人员能力素质 : 随着这几年国内 IT 行业的快速发展,测试这一职位也越来越受到企业的重视,但是测试人才却存在巨大的缺口。为了尽快满足项目的需要,所以很多企业招聘时就会降低对测试人员的能力要求,进而导致这一职业被外界普遍认知都是: 门槛低、水平低,就是随便点点 ;许多的待就业人员也会形成同样的认知,大量涌入这一岗位;进而影响下一波人 ……. 如此恶性循环下去。 不乏有一批人觉得这个行业太 low ,觉得自动化够高大上,在没有打牢测试基础的情况下,开始学 python 、学语言,立下要做自动化测试的方向 …... 但是殊不知测试基础都没有做好,写出来的脚本根本不能解决问题。 这以上就是测试行业的现状和自动化测试人员参差不齐的原因。 借着这个机会,想说明一下:一位优秀的测试人员应具备的能力和素质。 从下到上,依次分别是:基础素质、测试能力、代码能力、平台架构能力和核心驱动力。正如金字塔形状

python+requests接口自动化测试框架实例详解教程

我只是一个虾纸丫 提交于 2020-01-24 19:56:57
1、首先,我们先来理一下思路。 正常的接口测试流程是什么? 脑海里的反应是不是这样的: 确定测试接口的工具 —> 配置需要的接口参数 —> 进行测试 —> 检查测试结果(有的需要数据库辅助) —> 生成测试报告(html报告) 那么,我们就根据这样的过程来一步步搭建我们的框架。在这个过程中,我们需要做到业务和数据的分离,这样才能灵活,达到我们写框架的目的。只要好好做,一定可以成功。这也是我当初对自己说的。 接下来,我们来进行结构的划分。 我的结构是这样的,大家可以参考下: ​​​​​​ common:存放一些共通的方法 result:执行过程中生成的文件夹,里面存放每次测试的结果 testCase:用于存放具体的测试case testFile:存放测试过程中用到的文件,包括上传的文件,测试用例以及 数据库的sql语句 caselist:txt文件,配置每次执行的case名称 config:配置一些常量,例如数据库的相关信息,接口的相关信息等 readConfig: 用于读取config配置文件中的内容 runAll:用于执行case 既然整体结构有了划分,接下来就该一步步的填充整个框架了,首先,我们先来看看config.ini和readConfig.py两个文件,从他们入手,个人觉得比较容易走下去哒。 我们来看下文件的内容是什么样子的: [DATABASE] host = 50

http接口测试框架-python

百般思念 提交于 2020-01-24 19:47:45
简单分解一下 接口测试框架设计: 主入口 -> 遍历接口/用例 -> 发送请求+接收响应 ->结果的对比 -> 生成报告 ->发送email 分成几大类: 主入口的py文件 src-核心代码文件 遍历case,发送请求和接收响应 存放case的 2、数据库里维护 3、excel里维护 包括的字段:编号,接口名称,地址前缀,请求地址,请求方法,请求数据类型,请 求数据,检查点,是否运行,测试结果,响应参数 公共函数:被多次重复调用,且没有依赖性 commans-存放公共函数库文件 2、数据库里维护 3、excel里维护 包括的字段: reports存放报告 excel 放插件的目录 log日志目录 1\先编写请求类,requests库里各类请求的封装 #! /usr/bin/env python #coding=utf-8 import requests import json #定义请求类 class Interface_Request: def req_get(self,url,params,headers): try: r = requests.get(url,params=params,headers=headers) #转换为python类型的字典格式,json包的响应结果,调用json(),转换成python类型 json_r = r.json() return json

Appium自动化测试框架研究(2)——搭建IOS环境

偶尔善良 提交于 2020-01-24 07:03:08
今天的文章讲 iOS 的A ppium 环境搭建。 对于 iOS 而言,只能在 Mac 笔记本上安装 Appium ,以及所需要的各种组件。 也许有人会问,能否在 Windows 系统上使用 Appium 测试 iOS 手机,这不就不用花钱买 Mac 了吗?答案是不可以,因为 Appium 的本质是把我们编写的自动化测试脚本,翻译成 Mac 中 UIAutomator 的脚本,所以只能 Mac 来做, W indows 系统搞不定。但是,你可以装黑苹果来解决这个问题。 我们这篇文章不提黑苹果,而是介绍怎么在 mac 笔记本上安装能运行 iOS 自动化测试的 appium 。 以下的 6 个步骤,在上一篇文章我们已经介绍过,请参考上一篇文章。。 1 )安装 Node 。 2 )使用 Node 下载 Appium Server 。 3 )下载并安装 Appium Desktop. 4 )下载并安装 Python 3 。 5 )使用 pip 下载 Appium Client 。 6 )安装 Appium Doctor 。 为什么说 iOS 支持 Appium 麻烦呢,因为还要执行下列的步骤: 1 )安装最新版的 XCode ,去 App Store 下载并安装最新版即可 要确保 XCode 的版本和 IPhone 的版本是兼容的,否则就升级系统。 2 )安装 Xcode Command

react前端自动化测试: jest + enzyme

耗尽温柔 提交于 2020-01-22 15:48:18
1.背景 本文中的自动化测试指的是单元测试 (UT),所谓单元测试也就是对每个单元进行测试,通俗的将一般针对的是函数,类或单个组件,不涉及系统和集成。单元测试是软件测试的基础测试,主要是用来验证所测代码是否和程序员的期望一致。 jest 是 facebook 开源的,用来进行单元测试的框架,功能比较全面,测试、断言、覆盖率它都可以,另外还提供了快照功能。 2.安装与配置 2.1安装 安装jest npm install --save-dev jest 安装babel-jest npm install --save-dev babel-jest 安装enzyme,需要根据项目的react版本来安装 对应的enzyme npm install --save-dev enzyme enzyme-adapter-react-16 安装react-test-renderer npm install --save-dev react-test-renderer 2.2配置 package.json 中添加: { "scripts": { "test": "jest" } } 执行npm run test 命令可在终端运行查看测试运行结果。 同时 Jest 还提供了生成测试覆盖率报告的命令,只需要添加上 --coverage 这个参数既可生成,再加上--colors可根据覆盖率生成不同颜色的报告

微信小程序的自动化测试框架

拜拜、爱过 提交于 2020-01-22 05:32:46
微信小程序的自动化测试框架 微信发布了小程序的自动化测试框架Minium,提供了多种运行验证方式,其特点: 支持一套脚本,iOS & Android & 模拟器,三端运行 提供丰富的页面跳转方式,看不到也能去得到 可以获取和设置小程序页面数据,让测试不止点点点 可以直接触发小程序元素绑定事件 支持往 AppSerive 注入代码片段 可以调用部分 wx 对象上的接口 官方地址如下:https://git.weixin.qq.com/minitest/minium-doc/tree/master minium 是为小程序专门开发的自动化框架, 提供了 Python 和 JavaScript 版本。使用 minium 可以进行小程序 UI 自动化测试, 但是 minium 的功能不止于仅仅是 UI 自动化, 甚至可以使用 minium 来进行函数的 mock, 可以直接跳转到小程序某个页面并设置页面数据, 做针对性的全面测试, 这些都得益于我们开放了部分小程序 API 的能力。除此之外,小程序有部分组件使用了系统原生的组件,对于这部分的组件,我们也基于 uiautomator 和 wda 做了补充。 环境依赖 Python 3.x 微信公共库版本 >= 2.7.3 下载并安装稳定版微信开发者工具,工具下载地址:https://developers.weixin.qq.com

Android自动化测试——Appium+python+Jenkins自动化测试框架搭建

大兔子大兔子 提交于 2020-01-21 18:48:25
目录 整体知识框架 环境准备 (windows) appium安装和使用 deviceName 可通过adb devices 得到 appPackage 和appActivity 的获取:连接手机 dos 输入 Pycharm引入插件Appium-Python-Client----关联Appium 和Python ​ HTMLTestReportCN----生成测试报告 修改后的测试用例代码 : 测试用例二:FirstTest 测试用例二:SecondTest 主测试用例:使用unittest封装多个测试用例 yaml数据配置----数据分离 日志收集 logging构成 PageObject设计模式----代码封装 封装App启动配置信息 封装基类:baseview 封装通用公共类 Windows 中使用批量工具Bat文件运行测试用例 Python 启动Appium Jenkins 持续集成 整体知识框架 环境准备 (windows) 1.jdk1.8.0 (64位) 2.android-sdk(直接下载安卓studio就都有了) 3.python:3.7 4.Appium-windows-1.15.1 5.Node.js //以上安装并配置好环境变量 6.Appium-Python-Client 7.pycharm(用于编写脚本) 8.HTMLTestReportCN

Java+Selenium自动化测试(二)

烈酒焚心 提交于 2020-01-16 20:10:01
Java+Selenium+TestNG自动化测试框架整合 1、简化代码 封装一个定位元素的类,类型为ElementLocation package com.test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import java.util.concurrent.TimeUnit; /** * 每次定位元素都调用相同的方法 * 将每个方法都封装起来仅供调用 */ public class ElementLocation { /** * 通过id定位元素 * @param id * @param elementId */ public void finElementByID(String id, String elementId, WebDriver driver){ driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.findElement(By.ById.id(id)).sendKeys(elementId); } /** * 通过xpath定位元素 * @param xpath * @param text */ public void findElementByXpath(String