摘要: 在进行测试自动化过程中,一个重要的最佳实践就是实现测试脚本和测试数据的分离。本文将涉及2个主题,一个是在pytest中如何实现测试用例脚本数据的分离,测试用例如何读入测试数据;二是在pytest中如何实现测试用例参数化。这两点是有区别的,如下图: flowchart LR TC[测试脚本] -->| 阅读全文
posted @ 2023-09-20 14:34 类型安全的心 阅读(173) 评论(0) 推荐(0) 编辑
摘要: Playwright不仅可以测试Web应用,也可以访问REST API进行测试。考虑以下应用场景: 测试服务器端API。 在进行Web应用测试前,调用一些API探测服务器状态。 在Web应用测试后,调用一些API服务来进行数据验证。 后面的2个选项意味着可以在测试用例中组合Web和API的测试。 举 阅读全文
posted @ 2023-09-18 11:17 类型安全的心 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 最近由于新项目需要,建立一个TestLink来管理测试。主要用来对测试用例的管理,多人协作。TestLink的安装和配置都比较简单,但是也有一些小坑需要注意。 官网下载XAMPP。这是TestLink需要的运行环境。如果机器没有安装JDK,需要先安装最新JDK。XAMPP建议不要选择最新的版本,会出 阅读全文
posted @ 2020-09-22 17:51 类型安全的心 阅读(841) 评论(0) 推荐(0) 编辑
摘要: 基础操作 测试Excel的内容如下 代码 import xlrd as x local_filepath = r"D:\Python\Students.xlsx" # Open work book, no need to close it wb = x.open_workbook(local_fil 阅读全文
posted @ 2020-08-27 17:58 类型安全的心 阅读(722) 评论(0) 推荐(0) 编辑
摘要: 这是错误修正后的截图 在修正问题之前使用 from pageObjects import LoginPage 就抛出Error TypeError: 'module' object is not callable. 仔细想想也是有道理的, 因为一个py文件里面是可能包含多个class的. 如果使用上 阅读全文
posted @ 2020-08-08 16:20 类型安全的心 阅读(6308) 评论(0) 推荐(0) 编辑
摘要: 这是一个很多基础演示的书上的例子,但是一般按照这些书上的代码可能都不能成功登录。也许是网易修改了126的页面导致的吧,下面给出最新的能够work的版本 需要注意的几个问题: 阅读全文
posted @ 2019-05-12 17:51 类型安全的心 阅读(869) 评论(0) 推荐(0) 编辑
摘要: 用Python 3 + Selenium 3实现汉堡王客户调查的自动填写,可以用来作为 python selenium的入门学习实现脚本,列举了几个比较不太好弄的知识点。 上代码: 需要注意的几个问题: 汉堡王客户调查页面的Radio是没办法直接调用click的, 会抛‘could not be s 阅读全文
posted @ 2019-05-12 17:06 类型安全的心 阅读(2275) 评论(0) 推荐(0) 编辑
摘要: 最新的selenium测试平台大概有这么几个组件 Selenium Standalone Server: 用来搭建远程测试平台以及分布式测试。 Selenium WebDriver: 最基础的用来创建测试脚本以及用来和上面的server进行交互的客户端的驱动。这个针对不同的开发语言有不同的版本,比如 阅读全文
posted @ 2019-04-29 14:15 类型安全的心 阅读(7627) 评论(0) 推荐(0) 编辑
摘要: 游标执行后返回的结果都只是数据,但是不带有列名标识。这里需要处理2个问题:将返回的数据映射到每一列上当返回的结果很大的时候,需要使用迭代器来提升性能。解决上面的2个问题,在python里面可以采用下面的2种方式来处理。使用namedtuple 和 map object。使用yield 和 zip。下面是示例代码:Result_From_DB# MySQL 数据库import mysqlfrom mysql import connectorfrom collections import namedtupledef generate_namedtuple(cur): from collect... 阅读全文
posted @ 2013-12-17 22:10 类型安全的心 阅读(14698) 评论(0) 推荐(0) 编辑
摘要: 下载的module解压后里面有setup.py文件,如果打开setup.py文件里面有这段代码:from setuptools import setup...setup(...这种的都需要调用setuptools模块。python3里面没有setuptools模块,但是有distribute模块。作用基本相同,想easy_install,就用distribute in python3.步骤1. 下载distribute模块,解压。cmd切换到目录。运行setup.py install安装distribute模块。2. 解压要安装的模块,cmd切换到目录,运行setup.py install进行 阅读全文
posted @ 2013-12-11 17:07 类型安全的心 阅读(7028) 评论(0) 推荐(1) 编辑
摘要: 主要简单说下Python 3.3搭配MySQL Community Server 5.6的使用。在Python 3系列和MySQL 5.0系列里面下面的代码应该都通用。(没有验证) 准备 python 3 这个在python的官方网站就能download. http://www.python.org/ MySQL Community Server 5.6 在MySQL的官网也能找到: http:/... 阅读全文
posted @ 2013-12-10 23:08 类型安全的心 阅读(5819) 评论(0) 推荐(1) 编辑
摘要: defaultdict()和namedtuple()是collections模块里面2个很实用的扩展类型。一个继承自dict系统内置类型,一个继承自tuple系统内置类型。在扩展的同时都添加了额外的很酷的特性,而且在特定的场合都很实用。defaultdict()定义以及作用返回一个和dictionary类似的对象,和dict不同主要体现在2个方面:可以指定key对应的value的类型。不必为默认值担心,换句话说就是不必担心有key没有value这回事。总会有默认的value.示例defaultdict_egfrom collections import defaultdicts = [( 阅读全文
posted @ 2013-12-10 22:02 类型安全的心 阅读(16254) 评论(0) 推荐(7) 编辑
摘要: 基础浮点数是用机器上浮点数的本机双精度(64 bit)表示的。提供大约17位的精度和范围从-308到308的指数。和C语言里面的double类型相同。Python不支持32bit的单精度浮点数。如果程序需要精确控制区间和数字精度,可以考虑使用numpy扩展库。Python 3.X对于浮点数默认的是提供17位数字的精度。关于单精度和双精度的通俗解释:单精度型和双精度型,其类型说明符为float 单精度说明符,double 双精度说明符。在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间, 阅读全文
posted @ 2013-11-01 16:57 类型安全的心 阅读(326228) 评论(10) 推荐(23) 编辑
摘要: 主要有以下三种方式: 一,CPU时间 time.clock() 测量CPU时间,比较精准,通过比较程序运行前后的CPU时间差,得出程序运行的CPU时间。 二, 时钟时间 time.time() 测量时钟时间,也就是通常的类似掐表计时。 三,基准时间 timeit.timeit(stmt='pass', setup='pass', timer=, number=1000000) 简短示例: tim... 阅读全文
posted @ 2013-10-29 21:41 类型安全的心 阅读(7162) 评论(0) 推荐(1) 编辑
摘要: 一般来讲完整的测试用例结构差不多如下: 前置的有环境信息,包括硬件和软件。 然后就是设置和前提。这里的设置,一般包括一个隐形的总体设置。这个总体设置一般在测试用例中不会说明,由自动化脚本完成。这个总体设置,一般是和demo data关联。是为所有测试用例服务的。第二个Test Case Setup, 这个Setup是测试用例的Setup, 这部分Setup, 往往是针对General Set... 阅读全文
posted @ 2013-10-28 21:53 类型安全的心 阅读(1535) 评论(0) 推荐(0) 编辑
摘要: 一般来讲,测试用例设计的时候可以采用二维的方式归类: 横向:根据对用的FDD进行分类。 纵向:根据测试类型进行分类。 横向 横向的分类主要根据功能模块进行划分。根据产品的不同而有所不同,但是一般每一个测试用例,都能追溯到一个具体的功能需求。具有类似功能需求的测试用例会放在一起,形成一个功能模块的测试集。 纵向 纵向的分类主要根据测试的类型进行分类。主要有以下几种类型: BAT(Build A... 阅读全文
posted @ 2013-10-28 21:34 类型安全的心 阅读(5867) 评论(0) 推荐(0) 编辑
摘要: 一,检查标准1.准确性(Accurate)Tests what the descrīption says it will test. 测试覆盖了描述部分需要测试的内容。2.经济性(Economical)Has only the steps needed for its purpose.测试用例没有冗余的步骤3.可重复性(Repeatable)Self standing, same results no matter who tests it.测试用例应该是独立一致的,不管任何人执行,结果都一致。4.可追踪(Traceable)To a requirement.测试用例应该追溯到具体需求。5.自 阅读全文
posted @ 2013-10-25 21:52 类型安全的心 阅读(4985) 评论(0) 推荐(0) 编辑
摘要: 起因:在运行下面的unittest过程中出现了个Traceback:被测试脚本:# splitter.pydef split(line, types=None, delimiter=None): """Splits a line of test and optionally performs type conversion. For example: >>> split('GOOD 100 490.50') ['GOOD', '100', '490.50'] >>> 阅读全文
posted @ 2013-08-07 21:45 类型安全的心 阅读(3136) 评论(0) 推荐(0) 编辑
摘要: 实际上unittest模块才是真正意义上的用于测试的模块,功能强大的单元测试模块。继续使用前面的例子:# splitter.pydef split(line, types=None, delimiter=None): """Splits a line of test and optionally performs type conversion. For example: >>> split('GOOD 100 490.50') ['GOOD', '100', '490.50'] & 阅读全文
posted @ 2013-08-07 21:38 类型安全的心 阅读(1133) 评论(0) 推荐(0) 编辑
摘要: doctest是属于测试模块里的一种,对注释文档里的示例进行检测。给出一个例子:splitter.pydef split(line, types=None, delimiter=None): """Splits a line of test and optionally performs type conversion. For example: >>> split('GOOD 100 490.50') ['GOOD', '100', '490.50'] >>> s 阅读全文
posted @ 2013-08-07 21:20 类型安全的心 阅读(621) 评论(0) 推荐(0) 编辑