1. 第一个程序
我们的第一个python程序将要实现最简单的打印测试报告的功能。 我们希望可以将回归测试的结果打印到命令行窗口里。测试结果如下所示 新建名为 的文本文件,用文本编辑器打开,输入如下内容: 在命令行中使用下面的命令去执行代码 注意: 初学者一般不知道如何在命令行中cd进具体的文件夹,macos可能相对简单一些,对于使用windows的同学来说,cd到具体的文件 …
从基础概念到工具实操,逐篇掌握测试技能。
517 篇内容我们的第一个python程序将要实现最简单的打印测试报告的功能。 我们希望可以将回归测试的结果打印到命令行窗口里。测试结果如下所示 新建名为 的文本文件,用文本编辑器打开,输入如下内容: 在命令行中使用下面的命令去执行代码 注意: 初学者一般不知道如何在命令行中cd进具体的文件夹,macos可能相对简单一些,对于使用windows的同学来说,cd到具体的文件 …
这是为测试同学编写的学习python的一系列教程。 教程的主旨如下 不要写废话: 尽可能用最简练的篇幅把事情说清楚 多练多看: 读者应该把教程中代码敲一遍;教程里的示例代码,读者要想办法自己看懂 尽量使用测试同学可以理解的概念 我们使用python3.6以上的版本。 推荐读者使用vscode,vscode应该可以在windows及macos上运行。 我们的代 …
接上一节的弱密码例子,我们的用例尽管运行的不错,但还是有点问题。 假如我们需要增加一些测试数据,那么我们就必须去修改 方法,在 列表中增加数据,频繁修改代码以适应一些不变的测试场景,这是没有必要的开销,可以想办法去优化。 我们可以把测试数据保存在文件里,通过读取文件的方式,每次动态从测试用例读取数据,这样数据的改变并不会影响用例,用例逻辑相对稳定,维护成本 …
测试教程网 对教程的编写有着很高的要求,一定要简单通俗易懂,而且不过时。所以,目前所有的测试教程都是由 虫师 和 乙醇 空余时间亲手编写。 测试人员需要具备开发技能已经成为了不挣的事实,而且会越来越重要。我前两天爬了一下 “测试开发” 的招聘要求, Java 和 Python 是出现频率最高的两个编程语言。学习编程语言掌握一款强大的 IDE 是开发的基础。 …
注释是代码中非常重要的部分,一般来说注释的作用有下面一些 告诉你这段代码中实现了些什么,帮助你或其他阅读代码的人去理解代码 暂时让某段代码失效 新建名为 的文本文件,用文本编辑器打开,输入如下内容: 注意: 照着上面代码敲一遍,敲完以后检查一遍,因为对于新手来说,一次性就敲准确不那么容易。 在命令行中使用下面的命令去执行代码 如果没有出错的话,你应该可以看 …
当我们的测试数据是下面这些的时候,我们的用例是有问题的。 我们的用例只能找出tom是弱密码的用户,jerry这个用户会成为漏网之鱼。 这是因为在unittest中,一旦某个测试方法中的断言失败,后续的断言都不会被执行。 还原一下上面的例子,当用例在断言tom失败后,for循环就退出了,测试方法也执行完毕了,后面jerry这条数据就不会被断言。 我们可以重构一 …
我有个习惯,从来不叫教自动化技术的帮人为“学生”,而是叫“同学”。学生的话表示我跟他们不是同一个level的,而同学的话表示咱们都是一个level的。当然,这不是纯粹套近乎,也不是我故意放低姿态,而是,有很多问题我并不比他们强。 比如,前几天我就被鄙视了,原因是最近出不去,有一个同学问我怎么才能出去,我说我这几天也出不去,后来,那位同学不知哪里习得奇技淫巧出 …
几乎所有的编程语言都支持数学计算。不要认为不是数学高手就不能学习编程,很多时候我们在代码里只会用到非常简单的数学运算,常见的有 +: 加法 -: 减法 /: 除法 *: 乘法 %: 整除取余 <: 小于 : 大于 =: 大于等于 <=: 小于等于 考虑这样的场景,我们的测试用例一个分布在3个模块(A/B/C),A模块有30个用例,成功运行27个, B模块 …
unittest支持命令行接口,我们可以在命令行里指定运行具体的测试用例。 在 中定义了 用例,我们可以从命令行中指定只运行该用例。 还可以使用-v参数来获得更详细的输出 也可以在命令行中一次指定多个测试用例类,具体的大家可以自己尝试一下。
变量是编程语言中常见的概念。变量实际上很简单,我们可以把它想象成是一个盒子,这个盒子有名字,就是变量名,盒子里面可以放东西进去,就是变量的值。 程序员们一般使用变量让代码变得更加容易理解,因为他们的记忆力很糟糕,所以如果不取一些有意义的变量名的话,他们后来可能就看不懂自己写的代码了。 我们对上一节的内容稍微做一些修改,加入变量的实践。 新建名为 ,内容如下 …
unittest支持各种断言方法。 官方文档 方法 检查点 assertEqual(a, b) a == b assertNotEqual(a, b) a != b assertTrue(x) bool(x) is True assertFalse(x) bool(x) is False assertIs(a, b) a is b …
目前为止我们已经打印了不少的字符串了。那么什么是字符串呢? 在python里,字符串往往表现为用单引号 或者是双引号 包裹起来的一些文字。这些文字便于人类阅读,往往可以展示给我们程序的用户阅读。 下面代码里s1,s2都是字符串。 我们经常需要在字符串中包含一些变量,这样可以让字符串变得更加动态,不同变量的取值可以生成不同的字符串。 python 3.6 之后 …
python提供了一种方式让我们可以输入一些不太好通过键盘输入的字符,比如换行符缩进符之类的。这种特殊的字符组合我们可以称之为转义序列(escape sequences),详情可以参考官方文档。 我们经常使用的有 \n: 换行 \t: tab,可以当成是缩进 \: 反斜杠 ': 单引号,可以在单引号字符串中打印出单引号 ": 双引号,可以在双引号字符串中打印 …
pytest测试框架可以让我们很方便的编写测试用例,这些用例写起来虽然简单,但仍然可以规模化以及编写更加复杂的测试用例。 官方文档 用下面的命令去检查一下pytest是否成功安装 创建名为 的文件,敲如下内容 上面的代码做了2件事情 定义了名为 的全局函数,作用是把string反转并返回。比如输入"abc"会反转成"cba" 定义了名为 的函数,包含了2个断 …
我们有时候需要断言一些方法会抛出异常,这些异常需要符合我们的预期。 新建 文件,内容如下 上面的例子断言了当0作为除数的时候会抛出 断言异常是有套路的,使用 语句加 ,assertRaises的参数中传入预期的异常(这些异常可能需要先import进来),在with的子句中放上会抛出异常的语句或表达式
大部分的软件可能都需要接收用户的输入,比如 登录的功能,需要用户输入用户名密码之类 发微信,需要用户输入发送的信息 美化图片,需要用户选择滤镜等 这一节里我们将学习怎么从命令行里获取用户的输入。 在python里,我们可以简单的使用 函数来获取用户输入的信息,并保存在变量里。 在调用 函数时,我们可以在命令行将message打印出来展示给用户。 我们实现个简 …
在现实的测试活动中,我们经常会定义多个用例文件,用来实现业务逻辑或其他逻辑上用例的物理分隔,比如 使用pytest可以很方便的执行批量执行一组文件中定义的用例。 在批量执行用例之前,我们需要了解一下pytest的潜规则,注意,由于pytest可以支持丰富的定制选项,下面的潜规则是在没有定制的默认情况下的缺省规则 pytest会找当前以及递查找子文件夹下面所有 …
Assert就是断言,每个测试用例都需要断言。 与unittest不同,pytest使用的是python自带的assert关键字来进行断言,大大降低了学习成本。 assert关键字后面可以接一个表达式,只要表达式的最终结果为True,那么断言通过,用例执行成功,否则用例执行失败。 pytest的用例失败描述非常详尽,一目了人。考虑下面的例子 执行上面的用例 …
我们先稍微的修改一下上一节的用例生成器,加入接收命令行参数的功能。 作为测试用例的执行者,我们希望在创建用例的时候可以指定用例编号,以便能够更加系统的管理测试用例。 新建名为 ,内容如下 在命令行中使用下面的命令去执行代码 注意: 我们在脚本名称后面加上了itest_001,这就是我们指定的用例编号,千万不要忘记传入这个参数,否则代码将会报如下的错误 按照下 …
我们可以简单的把Fixture理解为准备测试数据和初始化测试对象的阶段。 一般我们对测试数据和测试对象的管理有这样的一些场景 所有用例开始之前初始化测试数据或对象 所有用例结束之后销毁测试数据或对象 每个用例开始之前初始化测试数据或对象 每个用例结束之后销毁测试数据或对象 在每个/所有module的用例开始之前初始化数据或对象 在每个/所有module的用例 …