第五阶段:进一步优化
把第四阶段代码进行进一步的优化并且把测试代码对数据校验的代码在util.py中建立方法check_condition_for_user,代码如下。
测试代码简化为。
下面来看一下如何测试建立订单。先来看一下订单相关的数据库表。
● goods_orders:一个用户下的所有的订单。包含创建时间、支付状态和送货地址编号。
● goods_order:一个商品对应的订单。包含数量,商品编号,用户编号和表goods_orders的外键。
可见,建立一个订单与用户、商品、配货地址有关。在excel的第二sheet中建立商品信息(包括商品名、单价、图片名以及描述)、在第二sheet中建立配货地址信息(包括配货地址和电话)。同样建立方法check_condition_for_order(),验证商品信息,地址信息是否在产品数据库中存在,如果不存在就用excel表中的数据建立。在这里建立一个购买三个商品的订单,订单编号分别为1、2、3。
其中get_user_id(username)获取当前和用户的id号。
check_goods_for_order(goods_name,goods_price,goods_pic,goods_desc),检查是否存在id为1、2、3的商品信息,如果没有,就用excel表中的数据(goods_price,goods_pic,goods_desc来自excel表)。
get_user_addess_id获得用户的配货地址信息,如果这个用户没有配货信息,用excel里的地址信息建立(address_name,phone来自excel表)。
特别提醒,如果是测试程序建立的数据,应该通过print语句输出提示信息。方法check_condition_for_order(self)返回用户名、密码、用户编号、和配送地址编号给测试程序。
建立订单首先要登录系统,requests类通过Session()方法来建立链接信息,定义之后,必须先建立一个对登录url的接口访问,即语句data = mysession.post(self.url_product,data=payload,cookies=self.cookie)。建立订单post参数里面包括配货地址号以及csrf token;cookies中除了有cserftoken,还有订单的商品id,{"1":"1","2":"2","3":"3"}表示订单中第一条商品id为1、第二条商品id为2以及第三条商品id为3。最后注意,由于这个订单式测试程序创建的,所以验证完毕,注意删除,不要在产品数据库中留下垃圾数据。
书写完了建立订单的操作,看看删除订单的测试代码。删除订单首先要建立订单,建立订单之前仍旧需要检查订单数据的有效性,有了前面测试用例的封装,有些代码就可以复用了。在这里先展示测试代码。
check_condition_for_order()仍旧可以使用,然后使用数据库建立订单数据。
最后测试删除url代码。
星云测试
http://www.teststars.cc
奇林软件
http://www.kylinpet.com
联合通测
http://www.quicktesting.net