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

简介: 顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript,主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程度生成py测试脚本。

4.接口测试

1)测试用例

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

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

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


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

编号

描述

期望结果

1

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

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

2

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

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


2XML数据文件

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),
...


1address_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

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

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


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


2XML数据文件

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号”将作为地址名称插入数据库中,验证这个信息删除后不能被显示。所以在这里不管地址id1234”还是地址信息“朝阳门外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


顾翔凡言:

      软件测试正在生病,而且病得不轻,自动化测试被要不吹得太火,要不一点都不会,自动化比不过开发、测试又找不到缺陷,丢了西瓜也捡不到芝麻。

目录
相关文章
|
6月前
|
前端开发 搜索推荐 算法
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
中草药管理与推荐系统。本系统使用Python作为主要开发语言,前端使用HTML,CSS,BootStrap等技术和框架搭建前端界面,后端使用Django框架处理应用请求,使用Ajax等技术实现前后端的数据通信。实现了一个综合性的中草药管理与推荐平台。具体功能如下: - 系统分为普通用户和管理员两个角色 - 普通用户可以登录,注册、查看物品信息、收藏物品、发布评论、编辑个人信息、柱状图饼状图可视化物品信息、并依据用户注册时选择的标签进行推荐 和 根据用户对物品的评分 使用协同过滤推荐算法进行推荐 - 管理员可以在后台对用户和物品信息进行管理编辑
185 12
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
|
10月前
|
搜索推荐 算法 前端开发
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
263 4
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
|
安全 测试技术 Python
基于Django的电子商务网站开发(连载39)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
92 0
基于Django的电子商务网站开发(连载39)
|
存储 安全 前端开发
基于Django的电子商务网站开发(连载37)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
167 0
基于Django的电子商务网站开发(连载37)
|
测试技术 Python
基于Django的电子商务网站开发(连载36)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
106 0
基于Django的电子商务网站开发(连载36)
|
XML 测试技术 数据库
基于Django的电子商务网站开发(连载34)
基于Django的电子商务网站开发(连载34)
81 0
基于Django的电子商务网站开发(连载34)
|
XML 测试技术 数据格式
基于Django的电子商务网站开发(连载33)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
110 0
基于Django的电子商务网站开发(连载33)
|
SQL XML 前端开发
基于Django的电子商务网站开发(连载40)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
227 0
|
测试技术 Python
基于Django的电子商务网站开发(连载38)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
102 0
|
XML 测试技术 数据格式
基于Django的电子商务网站开发(连载35)
基于Django的电子商务网站开发(连载35)
122 0

热门文章

最新文章