importurllibimporthttplibimportthreadingimportjsonimportsysimportosfrompexpectimportpxsshimportreimportrequestsusername='135********'password='123***'url ='http://xxxx.com/ajax/user_login/'form_data={'username':username,'password':password}
login_response = requests.post(url, data=form_data)
c = login_response.cookiesprintcdefput_order():globalcurl ='http://xxx.com/mobile/ajax/create_order/'form_data = {'restaurant_id':1116,'grid_location_id':60954,'menu_items_total':'12.00','delivery_fee':'3.00','menu_items_data':'[{"id":165316,"p":"2","q":6,"opts":[],"adds":[]}]','discount':0,'platform':1,'addition_data':'{}'}make_response = requests.post(url,data=form_data,cookies=c)
res= make_response.textid=json.loads(res)["order_id"]id=str(id)printidreturniddefsms():globalcglobalusernameurl ='http://xxx.com/ajax/is_order_need_sms_validate/'form_data={'mobile':username}
jsondata = json.dumps(form_data)sms_response = requests.post(url,data=jsondata,cookies=c)res= sms_response.text
text = eval("u"+"'"+res+"'")printtextiftext=='{"status": "ok", "need_validate": false, "send_type": "sms"}':returnelse:request_sms()validate_sms()defrequest_sms():globalc
url ='http://xxx.com/ajax/common_sms_code/'form_data={'request_type':'validate_order_mobile'}
jsondata = json.dumps(form_data)
sms_response = requests.post(url,data=jsondata,cookies=c)
res= sms_response.text
text = eval("u"+"'"+res+"'")printtextdefvalidate_sms():globalc
s=pxssh.pxssh()
s.login('114.80.202.22','zsz','zeronicky336')
s.sendline ("tail -n 100 /var/log/DeliveryHeroChina/deliveryhero.log |grep 341")
s.prompt()
x= s.before
a=x[-8:-2]printaurl ='http://staging.waimaichaoren.com/ajax/common_validate_sms_code/'form_data={'request_type':'validate_order_mobile','sms_code':a}jsondata = json.dumps(form_data)
sms_response = requests.post(url,data=jsondata,cookies=c)
res= sms_response.text
text = eval("u"+"'"+res+"'")printtextdefplace_order(id):globalcglobalusername
url ='http:/xxx.com/mobile/ajax/place_order/'form_data={'order_id':id,'grid_location_id':609554,'order_source':'desktop','customer_name':'222','mobile_number':username,'delivery_address':'address','preorder':'no','preorder_date':'','preorder_time':'18:00','pay_type':'cash','activities':'','platform':1,'email_address':'','xstreet':'','comment':'','red_packet_id':''}place_response = requests.post(url,data=form_data,cookies=c)
res= place_response.text
text = eval("u"+"'"+res+"'")printtextdefmake_order():id=put_order()sms()place_order(id)if__name__ =="__main__":
make_order()
这就是一个订餐的实例,基本都是通过request模拟请求完成的。自动化测试方式万变不离其中,在整个过程中的主要难点有以下几个:
- 了解业务逻辑,并组合好先后以及判断的顺序
- 参数的调用和传递
- 数据格式的转换
- 数据获取和提炼
只要精通了以上几点,任何自动化测试都不是问题。当然,大家看到的已经是成品了。单从代码调试的角度来说,你就会遇到很多问题,需要你具有独立解决问题的能力。方法很多,这个不是本篇重点,就不在这里说了。总而言之,天空飘来6个大字:不要依赖他人!随着测试技术的发展,对于技术要求会越来越高,甚至高于开发噢。而学习能力的Base,是习惯和兴趣。你做好投入技术的海洋,并且一去不复返哩咩?