ddt

requests---通过yaml+ddt封装测试数据

倖福魔咒の 提交于 2020-08-14 13:49:10
  前面安静介绍yaml的时候都提到过可以用来存储测试数据,帮助我们完成数据分离的测试思想,从而帮助我们以后更换测试数据更加方便 整体思路 我们主要思想就是进行测试数据的分离: 1、一个写数据的地方 2、一个读数据的文件 3、编写测试用例 封装读取Yaml 简单的进行对读取yaml进行封装,方便我们后面调用 import yaml import os class GetYaml(): def __init__ (self,file_path): # 判断文件是否存在 if os.path.exists(file_path): self.file_path = file_path else : print ( ' 没有找到%s文件路径 ' % file_path) self.data = self.read_yaml() def read_yaml(self): with open(self.file_path, ' r ' ,encoding= ' utf-8 ' )as f: p = f.read() return p def get_data(self,key= None): result = yaml.load(self.data,Loader= yaml.FullLoader) # 判断key是否存在 if key == None: return result else :

Web UI 自动化测试框架 pyse

百般思念 提交于 2020-08-12 08:40:58
WebUI automation testing framework based on Selenium and unittest. 基于 selenium 和 unittest 的 Web UI自动化测试框架。 特点 默认使用CSS定位,同时支持多种定位方法(id\name\class\link_text\xpath\css)。 基于Selenium二次封装,使用更简单。 提供脚手架,快速生成自动化测试项目。 自动生成/reports/目录,以及HTML测试报告生成。 自带断言方法,断言title、URL 和 text。 支持用例参数化。 安装 > pip install -U git+https://github.com/defnngj/pyse.git@master   加入我们。群,642830685,免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料! pyse命令 1、查看帮助: > pyse -h usage: pyse [-h] [-V] [--startproject STARTPROJECT] [-r R] WebUI automation testing framework based on Selenium. optional arguments: -h, --help show this help message and exit

软件测试面试题(2)

一笑奈何 提交于 2020-08-11 09:04:59
  经过前面总结的面试题,看到留言和私信都觉得还不错,这里安静在总结一些亲身经历的面试题 1、启动多个app同时运行用例怎么做?代码如何实现? 通过python进行对启动命令行appium进行封装,然后通过多线程的方法进行启动appium进行执行多台手机操作。具体代码: appium---多线程启动app(多台设备启动app) 2、unittest如何操作它的执行顺序 unittest本身执行是无序的,我们可以通过进行创建名称是进行判断执行顺序,也可以通过unittest中的TestSuite来进行添加执行的用例。具体操作: unittest---unittest多种加载用例方法 3、unittest中能否进行更改执行规则?不已test开头的方式? 我们如果仔细阅读过unittest的方法就可以发现,其实是可以进行在源码中修改的。 4、postman中的断言如何操作? postman的断言是通过javaScript来编写的,postman中有个Tests,我们可以在里面进行添加断言,也可以通过javaScript代码进行自己编写断言。具体操作: postman---postman增加断言 5、unittest的弊端? unittest目前不支持用例失败重跑,需要进行二次开发 6、通过学生,班级,科目,分数,学期这些你如何创建数据表? 这里可能就考察数据库的能力和业务逻辑流程了

一篇文章搞定Selenium元素定位/封装/数据驱动

社会主义新天地 提交于 2020-08-10 16:48:48
小伙伴都知道,自动化最重的,又最“难”(因为实战中会碰到定位的各种坑)那就是定位元素。如果不熟练掌握定位,那只怕你比功能测式的小伙伴下班还会要晚!扎心了吧! Selenium常用定位方式   我们在做WEB自动化时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素。工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素。那么我们怎么来定位他们呢? 来坑了!经常有开发人员,没有写元素的id,或者name,你要打开发吗?哈哈, 请一定熟练掌握xpath定位或css定位!!!否则你自动化寸步难行!! Selenium之iframe定位   在 web 应用中经常会出现 iframe 嵌套的应用,假设网站是一栋房子,那么iframe则是房子中的某一个房间,如果你要从房间里拿到东西,那么必须要新进入房间,才能拿到相应的内容。 selenium提供了switch_to.frame()的方法来进入iframe这个房间 selenium提供switch_to_default_content()的方法来退出iframe这个房间 以163邮箱的网站为例,要求:输入用户名和密码,点击登录 网址:https://mail.163.com/ 重点:在iframe操作完,一定要释放该元素。 (简单理解就是说,我要从这个房间出去后才能去其它地方) Selenium之列表定位

python_接口自动化测试框架

醉酒当歌 提交于 2020-08-08 16:13:52
本文总结分享介绍接口测试框架开发,环境使用python3+selenium3+unittest+ddt+ requests 测试框架及ddt数据驱动,采用Excel管理测试用例等集成测试数据功能,以及使用HTMLTestRunner来生成测试报告,目前有开源的poman、Jmeter等接口测试工具,为什么还要开发接口测试框架呢?因接口测试工具也有存在几点不足。 测试数据不可控制。比如接口返回数据不可控,就无法自动断言接口返回的数据,不能断定是接口程序引起,还是测试数据变化引起的错误,所以需要做一些初始化测试数据。接口工具没有具备初始化测试数据功能,无法做到真正的接口测试自动化。 无法测试加密接口。实际项目中,多数接口不是可以随便调用,一般情况无法摸拟和生成加密算法。如时间戳和MDB加密算法,一般接口工具无法摸拟。 扩展能力不足。开源的接口测试工具无法实现扩展功能。比如,我们想生成不同格式的测试报告,想将测试报告发送到指定邮箱,又想让接口测试集成到CI中,做持续集成定时任务。 测试框架处理流程 测试框架处理过程如下: 首先初始化清空数据库表的数据,向数据库插入测试数据; 调用被测试系统提供的接口,先数据驱动读取excel用例一行数据; 发送请求数据,根据传参数据,向数据库查询得到对应的数据; 将查询的结果组装成JSON格式的数据,同时根据返回的数据值与Excel的值对比判断

Python Selenium 之数据驱动测试的实现

ぐ巨炮叔叔 提交于 2020-08-07 09:59:46
数据驱动模式的测试好处相比普通模式的测试就显而易见了吧!使用数据驱动的模式,可以根据业务分解测试数据,只需定义变量,使用外部或者自定义的数据使其参数化,从而避免了使用之前测试脚本中固定的数据。可以将测试脚本与测试数据分离,使得测试脚本在不同数据集合下高度复用。不仅可以增加复杂条件场景的测试覆盖,还可以极大减少测试脚本的编写与维护工作。 下面将使用Python下的数据驱动模式(ddt)库,结合unittest库以数据驱动模式创建百度搜索的测试。 ddt库包含一组类和方法用于实现数据驱动测试。可以将测试中的变量进行参数化。 可以通过python自带的pip命令进行下载并安装:pip install ddt . 更多关于ddt的信息可以参考: https://pypi.org/project/ddt/ 一个简单的数据驱动测试 为了创建数据驱动测试,需要在测试类上使用@ddt装饰符,在测试方法上使用@data装饰符。@data装饰符把参数当作测试数据,参数可以是单个值、列表、元组、字典。对于列表,需要用@unpack装饰符把元组和列表解析成多个参数。 下面实现百度搜索测试,传入搜索关键词和期望结果,代码如下: import unittest from selenium import webdriver from ddt import ddt, data, unpack @ddt class

python_接口自动化测试框架

心已入冬 提交于 2020-08-05 02:41:39
本文总结分享介绍接口测试框架开发,环境使用python3+selenium3+unittest+ddt+ requests 测试框架及ddt数据驱动,采用Excel管理测试用例等集成测试数据功能,以及使用HTMLTestRunner来生成测试报告,目前有开源的poman、Jmeter等接口测试工具,为什么还要开发接口测试框架呢?因接口测试工具也有存在几点不足。 测试数据不可控制。比如接口返回数据不可控,就无法自动断言接口返回的数据,不能断定是接口程序引起,还是测试数据变化引起的错误,所以需要做一些初始化测试数据。接口工具没有具备初始化测试数据功能,无法做到真正的接口测试自动化。 无法测试加密接口。实际项目中,多数接口不是可以随便调用,一般情况无法摸拟和生成加密算法。如时间戳和MDB加密算法,一般接口工具无法摸拟。 扩展能力不足。开源的接口测试工具无法实现扩展功能。比如,我们想生成不同格式的测试报告,想将测试报告发送到指定邮箱,又想让接口测试集成到CI中,做持续集成定时任务。 测试框架处理流程 测试框架处理过程如下: 首先初始化清空数据库表的数据,向数据库插入测试数据; 调用被测试系统提供的接口,先数据驱动读取excel用例一行数据; 发送请求数据,根据传参数据,向数据库查询得到对应的数据; 将查询的结果组装成JSON格式的数据,同时根据返回的数据值与Excel的值对比判断

Web UI 自动化测试框架 pyse

百般思念 提交于 2020-08-04 22:32:20
WebUI automation testing framework based on Selenium and unittest. 基于 selenium 和 unittest 的 Web UI自动化测试框架。 特点 默认使用CSS定位,同时支持多种定位方法(id\name\class\link_text\xpath\css)。 基于Selenium二次封装,使用更简单。 提供脚手架,快速生成自动化测试项目。 自动生成/reports/目录,以及HTML测试报告生成。 自带断言方法,断言title、URL 和 text。 支持用例参数化。 安装 > pip install -U git+https://github.com/defnngj/pyse.git@master   加入我们。群,642830685,免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料! pyse命令 1、查看帮助: > pyse -h usage: pyse [-h] [-V] [--startproject STARTPROJECT] [-r R] WebUI automation testing framework based on Selenium. optional arguments: -h, --help show this help message and exit

requests---通过yaml+ddt封装测试数据

▼魔方 西西 提交于 2020-08-04 18:05:56
  前面安静介绍yaml的时候都提到过可以用来存储测试数据,帮助我们完成数据分离的测试思想,从而帮助我们以后更换测试数据更加方便 整体思路 我们主要思想就是进行测试数据的分离: 1、一个写数据的地方 2、一个读数据的文件 3、编写测试用例 封装读取Yaml 简单的进行对读取yaml进行封装,方便我们后面调用 import yaml import os class GetYaml(): def __init__ (self,file_path): # 判断文件是否存在 if os.path.exists(file_path): self.file_path = file_path else : print ( ' 没有找到%s文件路径 ' % file_path) self.data = self.read_yaml() def read_yaml(self): with open(self.file_path, ' r ' ,encoding= ' utf-8 ' )as f: p = f.read() return p def get_data(self,key= None): result = yaml.load(self.data,Loader= yaml.FullLoader) # 判断key是否存在 if key == None: return result else :

python_接口自动化测试框架

*爱你&永不变心* 提交于 2020-08-04 17:06:40
本文总结分享介绍接口测试框架开发,环境使用python3+selenium3+unittest+ddt+ requests 测试框架及ddt数据驱动,采用Excel管理测试用例等集成测试数据功能,以及使用HTMLTestRunner来生成测试报告,目前有开源的poman、Jmeter等接口测试工具,为什么还要开发接口测试框架呢?因接口测试工具也有存在几点不足。 测试数据不可控制。比如接口返回数据不可控,就无法自动断言接口返回的数据,不能断定是接口程序引起,还是测试数据变化引起的错误,所以需要做一些初始化测试数据。接口工具没有具备初始化测试数据功能,无法做到真正的接口测试自动化。 无法测试加密接口。实际项目中,多数接口不是可以随便调用,一般情况无法摸拟和生成加密算法。如时间戳和MDB加密算法,一般接口工具无法摸拟。 扩展能力不足。开源的接口测试工具无法实现扩展功能。比如,我们想生成不同格式的测试报告,想将测试报告发送到指定邮箱,又想让接口测试集成到CI中,做持续集成定时任务。 测试框架处理流程 测试框架处理过程如下: 首先初始化清空数据库表的数据,向数据库插入测试数据; 调用被测试系统提供的接口,先数据驱动读取excel用例一行数据; 发送请求数据,根据传参数据,向数据库查询得到对应的数据; 将查询的结果组装成JSON格式的数据,同时根据返回的数据值与Excel的值对比判断