专栏首页用户6517667的专栏基于Django的电子商务网站开发(连载13)

基于Django的电子商务网站开发(连载13)

1. 接口测试

重新构造初始化数据。

loginConfig.xml

<node> <case> <id>0</id> <username>Johnson</username> <password>000000</password> <email>Johnson@126.com</email> </case> <case> <TestId>loginReg-testcase001</TestId> <Title>用户登录</Title> <Method>post</Method> <Desc>正确用户名,错误密码</Desc> <Url>http://127.0.0.1:8000/login_action/</Url> <InptArg>{"username":"Johnson","password":"123456"}</InptArg> <Result>200</Result> <CheckWord>用户名或者密码错误</CheckWord> </case> <case> <TestId> loginReg-testcase002</TestId> <Title>用户登录</Title> <Method>post</Method> <Desc>错误用户名,正确密码</Desc> <Url>http://127.0.0.1:8000/login_action/</Url> <InptArg>{"username":"smith","password":"000000"}</InptArg> <Result>200</Result> <CheckWord>用户名或者密码错误</CheckWord> </case> <case> <TestId> loginReg-testcase003</TestId> <Title>用户登录</Title> <Method>post</Method> <Desc>错误用户名,错误密码</Desc> <Url>http://127.0.0.1:8000/login_action/</Url> <InptArg>{"username":"smith","password":"123456"}</InptArg> <Result>200</Result> <CheckWord>用户名或者密码错误</CheckWord> </case> <case> <TestId> loginReg-testcase004</TestId> <Title>用户登录</Title> <Method>post</Method> <Desc>正确用户名,正确密码</Desc> <Url>http://127.0.0.1:8000/login_action/</Url> <InptArg>{"username":"Johnson","password":"000000"}</InptArg> <Result>200</Result> <CheckWord>查看购物车</CheckWord> </case></node>

测试代码如下。

loginTest.py

#!/usr/bin/env python#coding:utf-8import unittest,requestsfrom util import GetXML,DB class mylogin(unittest.TestCase): def setUp(self): print("--------测试开始--------") #定义数据库表名 self.userTable = "goods_user" #建立GetXML对象变量 xmlInfo = GetXML("loginConfig.xml") #获得初始化信息 self.userValues = xmlInfo.getUserInitInfo() #建立DB对象变量 self.dataBase= DB() #连接数据库 self.dataBase.connect() #插入初始化数据库 self.dataBase.insert(self.userTable,self.userValues) #获得所有测试数据 self.mylists = xmlInfo.getxmldata() def test_login(self): for mylist in self.mylists: #获取传输参数 payload = eval(mylist["InptArg"]) #获取测试URL url=mylist["Url"] #发送请求 try: if mylist["Method"] == "post": data = requests.post(url,data=payload) elif mylist["Method"] == "get": data = requests.get(url,params=payload) else: print ("Method 参数获取错误") except Exception as e: self.assertEqual(mylist["Result"],"404") else: #验证返回码 self.assertEqual(mylist["Result"],str(data.status_code)) #验证返回文本 self.assertIn(mylist["CheckWord"],str(data.text)) def tearDown(self): #获取初始化数据库中的记录主码 id = self.userValues.split(',')[0] #删除这条记录 self.dataBase.delete(self.userTable,"id="+id) #关闭数据库连接 self.dataBase.close() print("--------测试结束--------") if __name__=='__main__': #构造测试集 suite=unittest.TestSuite() suite.addTest(mylogin("test_login")) #运行测试集合 runner=unittest.TextTestRunner() runner.run(suite)

星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net

本文分享自微信公众号 - 软件测试培训(iTestTrain),作者:顾翔

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于Django的电子商务网站开发(连载16)

    (1)通过循环语句formylist in self.mylists:遍历所有测试用例。

    小老鼠
  • 基于Django的电子商务网站开发(连载33)

    顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscr...

    小老鼠
  • 基于Django的电子商务网站开发(连载25)

    购物车模块包括“购物车中所有商品的显示”“添加商品进入购物车”“删除购物车中某种商品”“删除购物车中所有的商品”和“修改购物车中某种商品的数量”。

    小老鼠
  • python学习笔记6.7-简化数据结构的初始化过程

    我们每编写一个类的时候都需要编写一个初始化函数,那么如果编写的类当做数据结构来用,它们的初始化结构就是一样的,例如: class Stock: def ...

    锦小年
  • Python学习笔记 面向对象编程

    类和对象 定义类 Python支持面向对象编程,下面是一个例子。我们可以看到,在Python中声明类和其他语言差不多。不过实际上差别还是挺大的。 首先,Pyth...

    乐百川
  • 绕过安全设备的0day

    DNS域名系统是互联网关键的基础设施之一,它是一个将域名与IP地址互相映射的全球分布数据库。对于恶意DNS的过滤、检测恶意网站域名、僵尸网络和网络隐秘通道发现是...

    洛米唯熊
  • 从0开始的Python学习014面向对象编程

    到目前为止,我们的编程都是根据数据的函数和语句块来设计的,面向过程的编程。还有一种我们将数据和功能结合起来使用对象的形式,使用它里面的数据和方法这种方法叫做面向...

    Happy、Liu
  • Python3快速入门(六)——Pyth

    面向对象编程(Object Oriented Programing,OOP)是一种编程思想,OOP把对象当成程序的一个基本单元,一个对象包含数据和操作数据的方法...

    用户2398817
  • trick(十六)、静态方法、类方法、属性方法

    在类中的方法前面通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法

    于小勇
  • Python面向对象4:属性、成员修饰符

    1、属性: +@property的函数,具有属性,可以直接取值。属性具有方法的写作形式,同时具有字段的访问形式,访问时不需要加()。 案例1:不加属性的调用普通...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动