天天看点

做python自动化得时候怎么添加断言_python接口自动化 - 断言(上)

我们在做接口自动化的时候会用当unittest框架,这个框架中是有assert方法

当我们写好我们的case后 总要有个验证是否正确的东西,assert就给我们提供了非常强大的结果验证

序号

断言方法

断言描述

1

assertEqual(arg1, arg2, msg=None)

验证arg1=arg2,不等则fail

2

assertNotEqual(arg1, arg2, msg=None)

验证arg1 != arg2, 相等则fail

3

assertTrue(expr, msg=None)

验证expr是true,如果为false,则fail

4

assertFalse(expr,msg=None)

验证expr是false,如果为true,则fail

5

assertIs(arg1, arg2, msg=None)

验证arg1、arg2是同一个对象,不是则fail

6

assertIsNot(arg1, arg2, msg=None)

验证arg1、arg2不是同一个对象,是则fail

7

assertIsNone(expr, msg=None)

验证expr是None,不是则fail

8

assertIsNotNone(expr, msg=None)

验证expr不是None,是则fail

9

assertIn(arg1, arg2, msg=None)

验证arg1是arg2的子串,不是则fail

10

assertNotIn(arg1, arg2, msg=None)

验证arg1不是arg2的子串,是则fail

11

assertIsInstance(obj, cls, msg=None)

验证obj是cls的实例,不是则fail

12

assertNotIsInstance(obj, cls, msg=None)

验证obj不是cls的实例,是则fail

本次我们先介绍3种常用的方法,大家若想拓展更多的知识,可以拿以上列表自行尝试。

分别是assertEqual,assertNotEqual,assertIn

第一种断言:assertEqual

断言相等

assertEqual(arg1, arg2, msg=None)

验证arg1=arg2,不等则fail

示例代码如下

import unittest

class test(unittest.TestCase):

def testSubtract(self):

a = 1

b = 1

self.assertEqual(a,b,msg=None)

if __name__ == '__main__':

unittest.main()

做python自动化得时候怎么添加断言_python接口自动化 - 断言(上)

我们执行一下错误的给大家看下

做python自动化得时候怎么添加断言_python接口自动化 - 断言(上)

从上图我们可以看到,a = 1  b = 2   当我们断言a == b 的时候,并没有成功,程序报错了。

第二种断言:assertNotEqual

我们刚刚讲了断言两个值是否相等,是assertequal,那么在NotEqual 也是可以直观看出,两个值不相等的断言方式

做python自动化得时候怎么添加断言_python接口自动化 - 断言(上)

示例代码:

'''

博客园:酸芒果

作者:张天赐

'''

import unittest

class test(unittest.TestCase):

def testSubtract(self):

a = 1

b = 2

self.assertNotEqual(a,b,msg='a与b相等')

if __name__ == '__main__':

unittest.main()

如果相等我们看看执行结果

做python自动化得时候怎么添加断言_python接口自动化 - 断言(上)

第三种是assertIn

断言某个元素是否在某个里面,在则断言成功,不在则失败

做python自动化得时候怎么添加断言_python接口自动化 - 断言(上)

示例代码:

'''

博客园:酸芒果

作者:张天赐

'''

import unittest

class test(unittest.TestCase):

def testSubtract(self):

a = [1,2,3,4,5,6,7]

self.assertIn(7,a,msg='不在')

if __name__ == '__main__':

unittest.main()

可以从代码看出,我们断言 7,a 的意思是7是否在a这个列表中,因为在,我们执行成功,后面的mag是失败后给的提示,所有我们并没有看到

下面我们试下8 是否在a中

做python自动化得时候怎么添加断言_python接口自动化 - 断言(上)

python接口自动化18-multipart/form-data上传多个附件

前言 reuqests上传一张图片到服务器,前面已经介绍过了,那么如何在提交BUG的时候,上传附件呢? 上传附件的时候,文件的name参数名称是一样的,python里面key是不可以重复的,又如何处理 ...

Python接口自动化——soap协议传参的类型是ns0类型的要创建工厂方法纪要

1:在Python接口自动化中,对于soap协议的xml的请求我们可以使用Suds Client来实现,其soap协议传参的类型基本上是有2种: 第一种是传参,不需要再创建啥, 第二种就是ns0类型的 ...

python接口自动化(十)--post请求四种传送正文方式(详解)

简介 post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等.我们要知道post请求四种传送正文方式首先需要先 ...

python接口自动化-Cookie_绕过验证码登录

前言 有些登录的接口会有验证码,例如:短信验证码,图形验证码等,这种登录的验证码参数可以从后台获取(或者最直接的可查数据库) 获取不到也没关系,可以通过添加Cookie的方式绕过验证码 前面在“pyt ...

python接口自动化28-requests-html爬虫框架

前言 requests库的好,只有用过的人才知道,最近这个库的作者又出了一个好用的爬虫框架requests-html.之前解析html页面用过了lxml和bs4, requests-html集成了一些 ...

python接口自动化24-有token的接口项目使用unittest框架设计

获取token 在做接口自动化的时候,经常会遇到多个用例需要用同一个参数token,并且这些测试用例跨.py脚本了. 一般token只需要获取一次就行了,然后其它使用unittest框架的测试用例全部 ...

python接口自动化4-绕过验证码登录(cookie)

前言 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接). 获取不到也没关系,可以通过添加cookie的方式绕过验证码. 一.抓登录coo ...

python接口自动化3-自动发帖(session)

前言 上一篇模拟登录博客园,但这只是第一步,一般登录后,还会有其它的操作,如发帖,评论等,这时候如何保持会话呢? (敲黑板!!!由于博客园最近登录机制变了,登录全部走cookie登录) 一.sessi ...

python接口自动化16-multipart/form-data上传图片

前言 在提交表单操作的时候,经常会遇到图片上传的操作,图片上传是一个单独的接口,本篇以禅道为例,介绍如何上传图片 上传接口 1.以禅道上提交bug为例,在选择图片时,点确定按钮,就是上传图片了 2.用 ...

随机推荐

#来自codeforces round 363

具体情况是这样的:同样的程序,在我自己的电脑上跑出来是正确的结果,而提交到CF的评测机后对于相同的输入数据,结果居然不一样了!反复检查后未发现任何问题.目前怀疑可能与memset有关,因为在一步步修改 ...

NSString、NSMutableString基本用法

NSString其实是一个对象类型.NSString是NSObject(Cocoa Foundation的基础对象)的子类 一.NSString的创建 1.创建常量字符串.NSString *astr ...

025. asp.net中GridView的排序和过滤

前台HTML代码:

本地不安装oracle-client,使用pl/sql developer连接数据库

一.问题描述 本地未安装oracle-client端,由于机器资源有限,希望通过pl/sql developer进行远程数据库连接.单纯的安装pl/sql developer无法远程连接数据库. 二. ...

python实现发工资脚本

好开心啊,在旁边大神的帮助下,终于实现了发工资的python脚本,之前用shell写的老出错,刚才测试,发80个人工资详情,妥妥的,代码如下: from email.mime.multipart im ...

在Java Web项目中添加定时任务

在Java Web程序中加入定时任务,这里介绍两种方式:1.使用监听器注入:2.使用Spring注解@Scheduled注入. 推荐使用第二种形式. 一.使用监听器注入 ①:创建监听器类: impor ...

打开fiddler后无法访问网络问题

https://jingyan.baidu.com/article/f54ae2fc680be81e92b849ed.html 导入证书后,还有一步易遗漏操作: 再次运行fiddler,依次点击Too ...

51nod1016

1016 水仙花数 V2 1 秒 131,072 KB 160 分 6 级题   水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身.(例如:1^3 + 5^3 ...

c语言 快速排序

#include #include #define BUF_SIZE 10 void display(int array[], int m ...