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

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

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

表3-13为送货地址修改的测试用例。这里设计两个测试用例。

(1)修改一个当前登录用户不存在的收货地址信息,系统应该修改成功。

(2)修改一个当前登录用户已经存在的地址信息,系统应该报“这个地址已经存在!”的错误信息。

表3-13 送货地址修改的测试用例

编号

描述

期望结果

1

修改一个该用户没有使用过的地址

修改成功,并且可以正确地显示

2

修改一个该用户已经使用过的地址

显示“这个地址已经存在!”错误信息

2)XML数据文件

在addressConfig.xml文件中加入如下内容。

...<!--- 修改一个该用户没有使用过的地址 --> <case> <TestId>address-testcase003</TestId> <Title>地址信息</Title> <Method>post</Method> <Desc>修改一个该用户没有使用过的地址</Desc> <Url>http://127.0.0.1:8000/update_address/0/1/</Url> <InptArg>{"address":"上海市延安中路100号","phone":"13681166561"}</InptArg> <Result>200</Result> <CheckWord>上海市延安中路100号</CheckWord><!--- 与参数中phone保持一致 --> </case> <!--- 修改一个该用户已经使用过的地址 --> <case> <TestId>address-testcase004</TestId> <Title>地址信息</Title> <Method>post</Method> <Desc>修改一个该用户已经使用过的地址</Desc> <Url>http://127.0.0.1:8000/update_address/0/1/</Url> <InptArg>{"address":"上海市延安中路100号","phone":"13681166561"}</InptArg> <Result>200</Result> <CheckWord>这个地址已经存在!</CheckWord><!--- 与测试用例address-testcase003参数中address保持一致 --> </case>...

测试用例address-testcase004是基于address-testcase003基础上的,在这里把address-testcase003<InptArg>…</InptArg>参数信息原封不变地进行复制。

3)测试代码

测试代码保持不变。

3.6.3 送货地址的删除

1. urls.py

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

(1)address_id为删除地址的id。

(2)当sign=1 表示从用户信息进入删除。

(3)当sign=2 表示从订单信息进入删除。

2. views. py

...# 删除地址信息#sign=1 从用户信息进入#sign=2 从订单用户信息进入def delete_address(request,address_id,sign): util = Util() username = util.check_user(request) if username=="": uf = LoginForm() return render(request,"index.html",{'uf':uf,"error":"请登录后再进入"}) else: #获取指定地址信息 user_list = get_object_or_404(User, username=username) #删除这个地址信息 Address.objects.filter(id=address_id).delete() #返回地址列表页面 address_list = Address.objects.filter(user_id=user_list.id) #如果sign==2,返回订单信息页面 if sign=="2": return render(request, 'view_address.html', {"user": username,'addresses': address_list}) #进入订单用户信息 #否则进入用户信息页面 else: response = HttpResponseRedirect('/user_info/') # 进入用户信息 return response...

(1)登录用户通过语句user_list= get_object_or_404(User, username=username)获得的用户信息。

(2)通过语句Address.objects.filter(id=address_id).delete()删除所需要删除的收货地址信息。

(3)通过语句address_list= Address.objects.filter(user_id=user_list.id)返回当前用户的所有收货地址信息。

(4)通过sign=="1"还是sign=="2"来判断调用方法user_info()还是调用模板view_address.html模板。

3. 模板

删除以后,根据参数sign进入用户信息页面或者生成订单选择地址页面。所以在这里没有专门的模板文件。

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

表3-14为送货地址删除的测试用例。系统删除当前登录用户的一个送货地址信息,系统应该删除成功,在收货地址显示页面中不显示这条记录。

表3-14 送货地址删除的测试用例

编号

描述

期望结果

1

删除当前登录用户的一个送货地址信息

删除成功,在收货地址显示页面中不显示这条记录

使用测试程序向数据库中插入用户地址信息,然后测试产品代码是否可以正确地进行删除操作。

2)XML数据文件

在addressConfig.xml文件中加入如下内容。

... <!--- 删除地址信息 --> <case> <TestId>address-testcase005</TestId> <Title>地址信息</Title> <Method>get</Method> <Desc>删除地址信息</Desc> <Url>http://127.0.0.1:8000/delete_address/1234/1/</Url><!--- “1234”作为测试程序地址id插入数据库表中 --> <InptArg></InptArg> <Result>200</Result> <CheckWord>NOT,朝阳门外5454号</CheckWord><!--- NOT后字符将作为地址名称插入数据库中,验证这个信息删除后不能后去 --> </case></node>

标签<Url>...</Url >中“1234”作为测试程序地址id插入数据库表中,标签<CheckWord>...</CheckWord>中的“NOT,”后字符串“朝阳门外5454号”将作为地址名称插入数据库中,验证这个信息删除后不能被显示。所以在这里不管地址id“1234”还是地址信息“朝阳门外5454号”都可以任意修改。在此特别说明,为了保证每一个测试用例的独立性,每一个测试用例尽可能做到不依赖于其他的测试用例。如果需要依赖,必须把依赖的测试用例联合在一起执行。

3)测试代码

在测试代码中,在运行测试的开始做了一个判断。

... #开始测试 def test_address_info(self): for mylist in self.mylists: if ("NOT" in mylist["CheckWord"]): #id从mylist["Url"]中获取 id = (mylist["Url"]).split("/")[4] #address从mylist["CheckWord"]中获取 address= (mylist["CheckWord"]).split(",")[1] addressvalues = id+",'"+address+"','13666666666',0"self.util.insertTable(self.dataBase,self.addressTable,addressvalues)...

CheckWord 里面存在“NOT”,表示这条记录为需要删除地址信息的测试用例。在删除这条记录之前,需要先建立这条记录。

(1)通过配置文件中的(mylist["Url"]).split("/")[4]来获取需要建立收货地址记录的id。

(2)通过(mylist["CheckWord"]).split(",")[1]来获取这条收货地址记录的地址信息。

(3)电话号码硬编码为“13666666666”。

需要特别指出的是,在这里代码不删除初始化信息,是为了尽可能保证每一条测试用例之间的相互独立性。

在第3.5.4节中为了保持每一条测试用例的独立性,也应该另外建立一条购物车中的商品,然后进行删除,有兴趣的读者可以自己去修改完成。

星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4.接口测试
    • 1)测试用例
      • 2)XML数据文件
        • 3)测试代码
        • 3.6.3 送货地址的删除
          • 1. urls.py
            • 2. views. py
              • 3. 模板
                • 4. 接口测试
                  • 1)测试用例
                  • 2)XML数据文件
                  • 3)测试代码
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档