新年加入啄木鸟公众号,好运滚滚來!
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript,
主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
...url(r'^delete_orders/(?P<orders_id>[0-9]+)/(?P<sign>[0-9]+)/$', views.delete_orders),... |
---|
(1)orders_id为删除的单个订单或者总订单id。
(2)sign=1或者3表示删除单个订单。
(3)sign =2表示删除总订单。
(4)sign=1或者2表示从查看总订单进入删除。
(5)sign=3表示从查看单个订单进入删除。
...# 删除订单# id=1,3删除单个订单,id=2删除总订单# id=1,2从查看总订单进入,id=3从查看单个订单进入def delete_orders(request,orders_id,sign): util = Util() username = util.check_user(request) if username=="": uf = LoginForm() return render(request,"index.html",{'uf':uf,"error":"请登录后再进入"}) else: #如果删除单个订单 if sign == "1" or sign=="3": #通过主键获得单个订单的内容 order_filter = get_object_or_404(Order,id=orders_id) #获得当前订单所属于的总订单 orders_filter = get_object_or_404(Orders,id=order_filter.order_id) #删除这个单个订单 Order.objects.filter(id=orders_id).delete() #判断这个总订单下是否还有没有商品 judge_order = Order.objects.filter(order_id = orders_filter.id) #如果没有商品了 if (len(judge_order))==0: #删除这个订单所处于的总订单记录 Orders.objects.filter(id=orders_filter.id).delete() #如果标记为3,返回商品列表页面 if sign=="3": response = HttpResponseRedirect('/goods_view/') # 跳入商品列表页面 #如果标记为1,返回查看所有订单页面 if sign=="1": response = HttpResponseRedirect('/view_all_order/') # 跳入商品列表页面 #如果还有商品,且标记为3,返回订单确认页面 elif sign=="3": response = HttpResponseRedirect('/view_order/'+str(orders_filter.id)+'/') # 跳入订单确认 #否则返回所有订单页面 else: response = HttpResponseRedirect('/view_all_order/') # 跳入查看所有订单 #如果删除总订单 if sign == "2": #删除单个订单 Order.objects.filter(order_id=orders_id).delete() #删除总订单 Orders.objects.filter(id=orders_id).delete() #返回查看所有订单页面 response = HttpResponseRedirect('/view_all_order/') # 跳入查看所有订单 return response... |
---|
(1)登录用户通过判断语句ifsign == "1" or sign=="3"来就决定是否删除单独一个订单。
(2)如果是删除单独一个订单。
① 通过语句order_filter = get_object_or_404(Order,id=orders_id),获得单独订单信息内容。
② 通过语句orders_filter =get_object_or_404(Orders,id=order_filter.order_id)获得当前订单所属于的总订单信息。
③ 通过语句Order.objects.filter(id=orders_id).delete()中删除这个订单,需要注意的是如果这个订单所属的总订单都没有订单了,那么就必须把这个订单给删除。
④ 通过语句judge_order = Order.objects.filter(order_id= orders_filter.id)判断这个订单所属的总订单是否没有订单了,如果判断语句if (len(judge_order))==0结果为真,那么通过语句Orders.objects.filter(id=orders_filter.id).delete()把这条订单所属于的总订单给删除,然后根据sign=="1"还是sign=="3"返回方法goods_view()或view_order。
(3)如果ifsign=="2",也就是说删除的是总订单,先通过语句Order.objects.filter(order_id=orders_id).delete()删除这个总订单下的所有单个订单,然后通过和语句Orders.objects.filter(id=orders_id).delete()删除这个总订单,最后调用方法view_all_order()。
(4)删除单个订单可以从订单确认页面进入,也可以从查看所有订单页面进入。删除总订单只能从查看所有订单页面进入。参见图3-19和图3-20。
这里的模板为查看所有订单页面和订单确认页面,没有单独模板页面。
表3-17为删除订单的测试用例。设计两个测试用例,一个是删除总的订单,另外一个是删除单个订单。
表3-17 删除订单的测试用例
编号 | 描述 | 期望结果 |
---|---|---|
1 | 删除当前建立的单个订单 | 删除成功,且在显示页面中不显示 |
2 | 删除当前建立的总个订单 | 删除成功,且在显示页面中不显示 |
在orderConfig.xml后面加上。
...<!--- 删除当前建立的单个订单 --> <case> <TestId>order-testcase004</TestId> <Title>订单信息</Title> <Method>get</Method> <Desc>删除当前建立的单个订单</Desc> <Url>http://127.0.0.1:8000/delete_orders/0/1/</Url> <InptArg></InptArg> <Result>200</Result> <CheckWord>NOT,订单id:0</CheckWord><!--- 检查单个订单是否被删除 --> </case> <!--- 删除当前建立的总个订单 --> <case> <TestId>order-testcase005</TestId> <Title>订单信息</Title> <Method>get</Method> <Desc>删除当前建立的总个订单</Desc> <Url>http://127.0.0.1:8000/delete_orders/0/2/</Url> <InptArg></InptArg> <Result>200</Result> <CheckWord>NOT,上海市外滩一号</CheckWord><!--- 检查总订单是否被删除 --> </case></node> |
---|
测试代码保持不变。
星云测试
http://www.teststars.cc
奇林软件
http://www.kylinpet.com
联合通测
http://www.quicktesting.net