图文教程

从基础概念到工具实操,逐篇掌握测试技能。

517 篇内容

2017

(六) pom.xml 配置文件

用 Maven 来管理 Java 项目的第三方库,最主要是通过 pom.xml 文件,这一小节将解释该文件的使用。 以 (四)通过 mvn 命令创建 Maven 项目 创建的项目为例。打开项目根目录下的 pom.xml 文件。 * project:pom.xml文件中的顶层元素; * modelVersion:指明POM使用的对象模型的版本。这个值很少改动。 …

1 分钟阅读

(七)TestNG 用例执行顺序

有时候,我们希望用例按照我们要求的顺序来执行。TestNG 同样可以满足这一点要求。 通过 testng.xml 文件修改配置。 preserve-order 参数用于控制测试用例的执行顺序。如果为:true,测试用例的顺序为:testCase > testCase1 > testCase2。如果为:false ,那么默认会按照用例的名称的有字母/数字的顺序 …

1 分钟阅读

(八)TestNG 用例依赖

当某一条用例运行失败时,其它用例必然也会失败,所以,我们就没有必要再运行其它用例了,这个时候我们就可以设置用例之间的依赖。 dependsOnMethods 来设置用例的依赖,当 testAdd1() 运行失败时,则 testAdd2() 不再被执行。 dependsOnGroups 来设置组的依赖,testAdd1()和 testAdd2() …

1 分钟阅读

(九)TestNG 用例参数化

参数化也测试用例中常用的技巧之一,它可以增加用例的可配置性和减少相同用例的编写。 @Parameters 获取参数化数据,作为 testAdd1() 测试方法的参数。 具体的测试数据在 testng.mxl 文件中设置。 <parameter.../> 定义测试数据 name 定义数据的名字,在测试用例中通过该名字来获取对应的vlaue。 value 定义测 …

1 分钟阅读

(十) TestNG 多线程运行用例

TestNG 是我接触过的唯一自身支持多程技术的单元测试框架。虽然代码级别的单元测试运行得很快,多线程的意义并不大。但如果是UI自动化测试的话运行速度就会非常慢,这个时候多线程技术就会变得很重要。 这里只介绍 testng.xml 文件,其中的使用到的测试用例,请参考前面的章节创建。 parallel 设置多线程的级别划分。 …

1 分钟阅读

(十一)TestNG 其他使用技巧

除了前面介绍的功能外,TestNG 还有一些使用技巧,相对比较简单,这里通过一个例子来演示。 enabled 设置用例是否跳过执行,默认为:true ,表示不跳过。false 表示跳过执行。 timeOut 设置用例运行的超时间,3000 单位为毫秒,当用例运行时间超过 3000 毫秒则判定为失败。不管用例本身是否运行失败。 …

1 分钟阅读

(十二)TestNG 生成测试报告

TestNG 默认自带的有HTML格式的测试报告。这也充分说明拿它来做 UI 自动化测试的优势。 切换到 TestngTest 项目的跟目录下,通过 mvn test 命令运行测试。 在该系列教程开始前,我已经说明了整个项目基于 Maven 创建。 现在打开 ..\TestngTest\target\surefire-reports\index.html 将 …

1 分钟阅读

requests如何构造复杂的post请求?

默认情况下,在post方法中使用 data 关键字参数,Requests的行为会表现的像是在发送一个html表单,比如 如果需要为多个元素使用同一key的话,可以在data中传入元组,比如 如果 data 中传的是string而不是dict的话,那么字符串将会被直接发送出去 因为现在很多api接受json字符串格式的post data,Requests为这种 …

1 分钟阅读

requests如何在url中传递参数?

官方文档 我们经常需要在请求中加参数,比如一些分页信息,每页返回的资源数量等。 如果我们手工去构造这些参数的话,我们会在url后面接 ,然后传入key/value对,比如 。多个key/value对以 分隔。 在Requests里,我们一般使用 关键字参数的方式,传入dict来传递url参数。比如,假设我们想传递 和 这2个参数,我们可以用下面的代码 可以通 …

1 分钟阅读

requests如何获取响应的状态码?

使用 就可以了。 为方便引用,Requests还附带了一个内置的状态码查询对象: 如果发送了一个错误请求(一个 4XX 客户端错误,或者 5XX 服务器错误响应),我们可以通过 Response.raise_for_status() 来抛出异常: 如果在测试用例中直接使用 方法,如果有异常抛出的话,用例会自动失败。

1 分钟阅读

requests如何查看响应内容?

方法会拿到请求的响应内容,比如以再github的timeline接口为例 Requests会自动去解码server端返回的内容,大部分的unicode字符集都会被无缝解码。 当你发送请求的时候,Requests会根据HTTP headers来推断编码,并在 调用的时候使用。我们可以查看和修改Requests的编码,比如

1 分钟阅读

requests中如何查看响应的headers?

可以拿到Python 字典形式展示的服务器响应头: 但是这个字典比较特殊:它是仅为 HTTP 头部而生的。根据RFC 2616, HTTP 头部是大小写不敏感的。 因此,我们可以使用任意大写形式来访问这些响应头字段:

1 分钟阅读

requests如何解析json响应?

官方文档 如果服务器返回json格式的数据,那么我们一般希望可以把json字符串转成python的dict数据类型。 如果JSON解析失败,r.json()会抛异常。比如假设响应的返回状态码是204(No Content),又或者响应的返回json字符串格式有错误,那么r.json()回抛出 异常。 需要引起注意的是r.json()解析成功了并不代表请求是成 …

1 分钟阅读

requests如何查看cookies和发送cookies?

如果某个响应中包含一些 cookie,你可以快速访问它们: 要想发送你的cookies到服务器,可以使用 cookies 参数: Cookie 的返回对象为 RequestsCookieJar,它的行为和字典类似,但界面更为完整,适合跨域名跨路径使用。你还可以把 Cookie Jar 传到 Requests 中:

1 分钟阅读

requests如何处理url的重定向?

默认情况下,除了HEAD请求, Requests 会自动处理所有重定向。 如果你使用的是GET、OPTIONS、POST、PUT、PATCH 或者 DELETE,那么你可以通过 allow_redirects 参数禁用重定向处理: 可以使用 方法来追踪重定向 如果你使用了 HEAD 方法,你也可以启用重定向:

1 分钟阅读

requests如何处理二进制的响应内容?

官方文档 有时候服务器返回的数据不是文本的,而是二进制的,这时候我们就需要处理二进制的内容。 Requests中可以使用content方法来返回二进制的响应内容,比如 如果响应是gzip压缩过的,Requests会自动解压。 下面这个例子演示了如何从服务器返回的二进制内容创建图片。

1 分钟阅读

requests中如何设置请求的超时时间?

使用timeout 参数可以设定等待连接的秒数,如果等待超时,Requests会抛出异常 timeout 仅对连接过程有效,与响应体的下载无关。 timeout 并不是整个下载响应的时间限制,而是如果服务器在 timeout 秒内没有应答,将会引发一个异常(更精确地说,是在 timeout 秒内没有从基础套接字上接收到任何字节的数据时)。

1 分钟阅读