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

  • 2019 年 12 月 11 日
  • 筆記

1. 接口测试

重新构造初始化数据。

loginConfig.xml

<node> <case> <id>0</id> <username>Johnson</username> <password>000000</password> <email>[email protected]</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