python接口自动化初识unittest框架

Posted 测试baby

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python接口自动化初识unittest框架相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

本文将介绍单元测试的基础版及使用unittest框架的单元测试。

完成以下需求的代码编写,并实现单元测试

账号正确,密码正确,返回{“msg”:“账号密码正确,登录成功”}

账号和密码任一为空,返回{“msg”:“所有参数不能为空”}

账号/密码错误,返回{“msg”:“账号/密码错误”}

基础代码实现:

定义方法,实现基本需求:
account_right = "python"
pwd_right = "python666"
def userLogin(account=None, pwd=None):
    if not account or not pwd:
        return {"msg":"所有参数不能为空"}
    if account != account_right or pwd != pwd_right:
        return {"msg":"账号/密码错误"}
    if account == account_right and pwd == pwd_right:
        return {"msg":"账号密码正确,登录成功"}
    return {"msg":"未知错误,请联系管理员"}

对代码进行验证,是否符合需求:

验证方法1:

print(userLogin("",""))
print(userLogin("python666","python"))
print(userLogin("","python666"))
print(userLogin("python",""))
print(userLogin("python","python666"))

验证结果:

分析:直接调用userLogin方法,获取各种参数对应的返回结果

验证方法2:

if __name__ == '__main__':
    try:
        assert userLogin("","") == {"msg":"所有参不能为空"}
        assert userLogin("python666","python") == {'msg': '账号/密码错误'}
        assert userLogin("","python666") == {'msg': '所有参数不能为空'}
        assert userLogin("python","") =={'msg': '所有参数不能为空'}
        assert userLogin("python","python666") == {'msg': '账号密码正确,登录成功'}
    except Exception as e:
        print("啊哦,测试失败")
    else:
        print("恭喜!全部用例测试通过")

验证结果:

在这里插入图片描述

分析:通过assert判断,写入参数调取userLogin方法时得到的响应和预期的响应是否一致,如果一致就打印“全部通过”,如果有不一致的则会打印“测试失败”

此处使用到的try…except…else组合:不论如何一定会执行try下的代码,如果有报错则执行except下的代码,如果没有,则执行else下的代码。

验证方法3:使用unittest框架

另写一个python文件,则需导入userLogin方法

import unittest

class MyTestCase(unittest.TestCase):
    def test_empty(self):
        expected = {"msg":"所有参数不能为空"}
        actual = userLogin("","")
        self.assertEqual(expected,actual)
        
    def test_pwd_wrong(self):
        expected = {"msg":"账号/密码错误"}
        actual = userLogin("python","python6")
        self.assertEqual(expected,actual)
        
    def test_account_empty(self):
        expected = {"msg":"账号/密码错误"}
        actual = userLogin("python666","python")
        self.assertEqual(expected,actual)
        
    def test_login_ok(self):
        expected = {"msg":"账号密码正确,登录成功"}
        actual = userLogin("python","python666")
        self.assertEqual(expected,actual)
        
if __name__ == '__main__':
    unittest.main()

验证结果:

在这里插入图片描述

分析:unittest框架中自带assert,实现的效果和方法1、2并无不同,只不过这样更好管理用例,可视化测试结果,以及产出测试报告。

self.assertEqual(expected,actual)即是,判断expected和actual的返回值相等。


最后:凡事要趁早,特别是技术行业,一定要提升技术功底。

其实每个程序员也能意识到目前自己面临的窘境,但能够及时作出改变,顺应时代变化的人太少了。毕竟更多人的情况是,忙着上班,也没人引路,自己也不太会规划。多数人明明“泰山崩于前,而面色如土”只能眼睁睁看着自己被行业淘汰吗?

在这里插入图片描述
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

关注我的微信公众号:【伤心的辣条】免费获取~

我的软件测试学习交流群:902061117 群里有技术大牛一起交流分享~

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

好文推荐:

35岁之后软件测试工程师靠什么养家?我能继续做测试!

App公共测试用例梳理

Python简单?先来40道基础面试题测试下

阿里二黑叹息:越来越多的年轻人从职场撤退了?

从一名开发人员转做测试的一些感悟

以上是关于python接口自动化初识unittest框架的主要内容,如果未能解决你的问题,请参考以下文章

python接口自动化8-unittest框架使用

python接口自动化测试 - unittest框架基本使用

Python3+Selenium3+Unittest+ddt+Requests 接口自动化测试框架

python3+requests+unittest:接口自动化测试

Python接口测试之对MySQL/unittest框架/Requests 的操作

python+unittest接口自动化执行多条测试用例怎么实现?