前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于Django的电子商务网站开发(连载27)

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

作者头像
顾翔
发布2019-12-11 16:46:05
6960
发布2019-12-11 16:46:05
举报
4.接口测试
1)测试用例

表3-8为查看购物车中内容的测试用例,上一节把商品放入购物车内,在这里验证进入购物车的商品信息是否可以正确地被显示出来。

表3-8 查看购物车测试用例

编号

描述

期望结果

1

添加一个商品进购物车

在购物车里可以查看到这个商品

2)XML数据文件

在chartConfig.xml中添加如下代码。

... <!--- 添加进购物车,在购物车列表页面查看到这个商品 --> <case> <TestId>chart-testcase002</TestId> <Title>购物车</Title> <Method>get</Method> <Desc>查看购物车中的内容</Desc> <Url>http://127.0.0.1:8000/view_chart/</Url> <InptArg></InptArg> <Result>200</Result> <CheckWord>&lt;td&gt;龙井茶叶&lt;/td&gt;</CheckWord><!--- 购物车中显示了添加的商品 --> </case>...

在<CheckWord>…</CheckWord>中,“&lt;td&gt;龙井茶叶&lt;/td&gt;”为“<td>龙井茶叶</td>”。

3)测试代码

在这里再做小小地优化,把变量s作为类的成员变量,这样使用到s的地方就改造为self.s。

... class Util: def __init__(self): self.url = "http://127.0.0.1:8000" self.s = requests.session()...def run_test(self,mylist,values,sign):... data = self.s.post(Login_url,data=payload)...data = self.s.post(run_url)...data = self.s.post(run_url,data=payload)... data = self.s.get(run_url,params=payload)... data = self.s.get(run_url)...def initChart(self): data = self.s.get(self.url+"/remove_chart_all/")... data = self.s.get(self.url+"/remove_chart/0/")...

然后改造测试代码chartTest.py。

... #开始测试 def chart_test(self): #初始化购物车,把购物车中所有内容均删除 data = self.util.initChart() for mylist in self.mylists: data = self.util.run_test(mylist,self.userValues,self.sign) #验证返回码 self.assertEqual(mylist["Result"],str(data.status_code)) #验证返回文本 self.assertIn(mylist["CheckWord"],str(data.text)) print (mylist["TestId"]+" is passsing!")...

可以看到,在写代码的时候,需要不停地优化代码,这样可以使得以后更好更方便地调用代码,从而使代码达到较高的复用性和较好的易维护性。所以代码的优化也是通过不断迭代来完成的,一开始就完成一个优秀的代码,是不太可能的,就像我写这本书一样,也是经过不断调整优化而完成的。读者在日常工作中除了编写代码以外,其他地方也要慢慢学会使用这种不断优化的方法。

3.5.3 修改购物车中的商品数量

1.urls.py

...url(r'^update_chart/(?P<good_id>[0-9]+)/$', views.update_chart),...

(1)good_id为购物车中需要修改商品的商品id。

2.views. py

...# 修改购物车中商品的数量def update_chart(request,good_id): util = Util() username = util.check_user(request) if username=="": uf = LoginForm() return render(request,"index.html",{'uf':uf,"error":"请登录后再进入"}) else: #获取编号为good_id的商品 good = get_object_or_404(Goods, id=good_id) #获取修改的数量 count = (request.POST.get("count"+good_id, "")).strip() #如果数量值<=0,报出错信息 if int(count)<=0: #获得购物车列表信息 my_chart_list = util.add_chart(request) #返回错误信息 return render(request, "view_chart.html", {"user": username, "goodss": my_chart_list,"error":"个数不能小于等于0"}) else: #否则修改商品数量 response = HttpResponseRedirect('/view_chart/') response.set_cookie(str(good.id),count,60*60*24*365) return response...

(1)登录的用户通过语句good= get_object_or_404(Goods, id=good_id)获取修改商品数量的商品信息。

(2)通过count = (request.POST.get("count"+good_id,"")).strip()获得修改商品数量的值。

①如果获取的值小于或者等于零,系统调用view_chart.html模板报“个数不能小于等于0”的提示信息(由于模板view_chart.html 中修改商品数量使用的是<input type="number">数据类型,所以里面的类型肯定为整数类型)。在这里注意的是,由于要返回view_chart.html,必须通过语句my_chart_list= util.add_chart(request)把购物车中的所有商品均获取到。

② 否则通过语句response.set_cookie(str(good.id),count,60*60*24*365)把指定商品的数量进行修改,返回方法view_chart()。

3.模板

当用户修改商品数量以后,不管填写的数字是否合法,均返回查看购物车页面,所以在这里的模板与“查看购物车”模块的模板一样。

4.接口测试
1)测试用例

表3-9为修改购物车中商品数量的测试用例。在这里设计了三个测试用例。第一个测试用例为正常的测试用例,修改数量为9个。由于购物车中数量是不可以小于0的,所以设计了第二个和第三个测试用例,分别把个数修改为0个和-1个,系统应该有相应的报错信息“个数不能小于等于0”。

表3-9 修改购物车中商品数量测试用例

编号

描述

期望结果

1

修改购物车中的商品数量为9

修改成功并且正确地显示

2

修改购物车中的商品数量为0

报错误信息“个数不能小于等于0”

3

修改购物车中的商品数量为-1

报错误信息“个数不能小于等于0”

2)XML数据文件

... <!--- 修改购物车中商品数量为9 --> <case> <TestId>chart-testcase003</TestId> <Title>购物车</Title> <Method>post</Method> <Desc>修改购物车中商品数量为9</Desc> <Url>http://127.0.0.1:8000/update_chart/0/</Url> <InptArg>{"count0":"9"}</InptArg> <Result>200</Result> <CheckWord>&lt;input type=&quot;number&quot; value=&quot;9&quot;</CheckWord><!--- 购物车中显示了商品数量的变更 --> </case> <!--- 修改购物车中商品数量为0 --> <case> <TestId>chart-testcase004</TestId> <Title>购物车</Title> <Method>post</Method> <Desc>修改购物车中商品数量为0</Desc> <Url>http://127.0.0.1:8000/update_chart/0/</Url> <InptArg>{"count0":"0"}</InptArg> <Result>200</Result> <CheckWord>个数不能小于等于0</CheckWord><!--- 验证购物车中商品数量=0是不允许的 --> </case> <!--- 修改购物车中商品数量为-1 --> <case> <TestId>chart-testcase005</TestId> <Title>购物车</Title> <Method>post</Method> <Desc>修改购物车中商品数量为-1</Desc> <Url>http://127.0.0.1:8000/update_chart/0/</Url> <InptArg>{"count0":"-1"}</InptArg><!--- 验证购物车中商品数量<0是不允许的 --> <Result>200</Result> <CheckWord>个数不能小于等于0</CheckWord> </case>...

在修改数量的form表中,输入框的name为"count"+商品的id,由于测试数据的商品id均为0,所以输入框的name为count0

3)测试代码

测试代码在这里不做任何修改。

星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试培训 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4.接口测试
    • 1)测试用例
      • 2)XML数据文件
        • 3)测试代码
        • 3.5.3 修改购物车中的商品数量
          • 1.urls.py
            • 2.views. py
              • 3.模板
                • 4.接口测试
                  • 1)测试用例
                  • 2)XML数据文件
                  • 3)测试代码
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档