html接口响应断言

接口响应值除类json格式,还有html格式

断言步骤

第一步:替换空格replace

原本返回的格式和网页内容一致,每行前面有很多空格,需要去除这些空格

第二步:分割split

因为行与行之前有回车符,所以把回车符替换掉,返回值为数组

数组不能直接打印数组,需要格式转换

 第三步,将数组内容转变为长的字符串

引用方法join将temp数组里的内容,用,分离开(separator分离)

 第四步,把逗号去掉

多行结果转换为一行结果

优化


第五步,得到html实际值和预期值

 

正则表达式

[]一次匹配一个字符,+是一次匹配多个字符 

需要匹配汉字,就写汉字的正则表达式,若还有数字,英文,下划线用\\w代替

将正则表达式,转换为真正的正则,赋值给p,将得到的html响应值用正则一一匹配(循环)

提取到实际值

得到结果就是excel表中的内容,实际想要搜索得到的书名

需要搜索的关键词+预期值一致

 

 第六步,断言对比

断言的内容和json格式一样,把2行代码复制过去

最终

 比对成功


 第七步,封装代码

1、新建类

2、写方法+复制之前的代码

json断言小变动,把入餐变量更改为response

3、更改代码 

与json断言的代码风格一致

4、测试类代码调用

 5、运行测试

运行结果是ok的,运行2条用例

第八步,搜索无结果用例

1、新增一条用例

 2、提取返回值内容

3、增加正则的判断

 

testrun代码中也将html入参由原本的单元格扩充为整个sheet,传入caseInfo

 

将html断言代码中入参从单元格换为case info一整个sheet 

 代码严谨

接口中包含querybook及接口是否有效,无结果就是无效,所以excel是no

优化最终代码

 4、更改断言的代码

原本是传入预期值,入参被更改,这里随之更改

 5、增加私有,增加注解

最终代码

html断言的代码

使用的excel测试用例 

textrun代码

 为保持风格一致,更改json断言代码入参

测试运行成功

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
pytest是一个基于Python的测试框架,可以用于编写各种类型的测试,包括接口测试。它具有简单易用、灵活性强、插件系统丰富等特点,被广泛应用于Python项目中的自动化测试。 在使用pytest进行接口自动化测试时,可以结合requests库发送HTTP请求,使用pytest的fixture机制进行前置条件和后置条件的设置,编写测试用例时可以使用pytest提供的assert语句进行断言,还可以使用pytest-html插件生成测试报告等。 以下是一个简单的pytest接口自动化测试示例: ```python import pytest import requests @pytest.fixture() def setup(): # 设置前置条件,例如登录获取token等 token = "xxxxxx" return token def test_get_user_info(setup): # 发送HTTP GET请求获取用户信息 url = "http://api.example.com/user/info" headers = {"Authorization": "Bearer " + setup} response = requests.get(url, headers=headers) # 断言接口响应状态码为200 assert response.status_code == 200 # 断言接口返回的用户信息中包含指定字段 assert "id" in response.json() assert "username" in response.json() assert "email" in response.json() def test_update_user_info(setup): # 发送HTTP PUT请求更新用户信息 url = "http://api.example.com/user/info" headers = {"Authorization": "Bearer " + setup} data = {"username": "new_username"} response = requests.put(url, headers=headers, data=data) # 断言接口响应状态码为200 assert response.status_code == 200 # 断言接口返回的用户信息中包含更新后的字段值 assert response.json()["username"] == "new_username" ``` 在这个示例中,通过定义setup fixture来设置前置条件,例如登录获取token,然后在测试用例中使用该fixture获取token,并发送HTTP请求进行接口测试。使用pytest提供的assert语句进行断言,对接口响应状态码和返回的数据进行验证。 除此之外,还可以通过使用pytest.mark.parametrize装饰器来实现参数化测试,使用pytest-html插件生成测试报告等。总之,pytest是一个功能强大的测试框架,可以帮助开发人员快速编写高效稳定的接口自动化测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

璇嘟嘟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值