标签:item dig cookies text sts load highlight validate xxxxxx
自动化测试其实是吧一个个测试点通过结构化设计串联起来,然后通过第三方模块也好,内置的模块也好,解决每一个测试点遇到的问题,以完成一个完整的自动化测试脚本。下面就完成一个自动化测试脚本。
............省略一万个字
完成了各个功能(各个模块代码省略)处理的函数,最后将其拼接起来,就可以组成一个完整的自动化测试,完整代码如下:
import requests import hashlib from datetime import * import json username = ‘19999999999‘ password = hashlib.md5(b"123456").hexdigest() url = ‘http://www.xxx.com/ajax/user_login/‘ form_data = {"uernsme":username,"password":password} login_response = requests.post(url,data = form_data) assert login_response.text == "success" c = login_response def make_oeder(): global c url = ‘http://www.xxx.com/ajax/create_order/‘ form_data = {"restaurant_id":1198,"menu_items_total":"120.00", "menu_items_data":"[{‘id‘:15316,‘p‘:‘2‘,‘q‘:6}]", "delivery_fee":"3.00"} make_reponse = requests.post(url,data = form_data,cookies = c) res = make_reponse.text id = json.loads(res)["order_id"] return id def place_order(id): global c global username time = datetime.now()+timedelta(hours=1) url = ‘http://www.xxx.com/ajax/place_order/‘ form_data = {"order_id":id,"customer_name":"xxxx", "mobile_number":username,"deliver_address":"xxxxxx", "preorder":"yes","preorder_time":time,"pay_type":"cash"} place_response = requests.post(url,data = form_data,cookies = c) res = place_response.text assert res == "success" print("订餐成功") def sms(): result = ask_sms() if result == "{‘status‘:‘ok‘,‘need_sms‘:False}": return else: request_sms() code = get_sms() validate_sms(code) def ask_sms(): global c global username url = ‘http://www.xxx.com/ajax/is_order_need/‘ form_data = {"mobile":username} ask_reponse = requests.post(url,data = form_data,cookies = c) res = ask_reponse.text return res def request_sms(): global c global username url = ‘http://www.xxx.com/ajax/common_sms_need/‘ form_data = {"mobile":username} sms_response = requests.post(url,data = form_data,cokies = c) res = sms_response.text assert res == "True" def get_sms(): global username url = ‘http://www.xxx.com/manager/login.action/‘ form_data = {"user":"admin","pwd":000000} login_response = requests.post(url,data = form_data) cookies = login_response.cookies url2 = ‘http://www.xxx.com/manager/smsmanager/‘ form_data2 = {"phone":username} code_response = requests.post(url2,data = form_data2,cookies = cookies) code = code_response.text assert code != "" return code def validate_sms(code): global c global username url = ‘http://www.xxx.com/ajax/validate_sms_code/‘ form = {"mobile":username,"sms_code":code} validate_response = requests.post(url,data = form,cookies = c) res = validate_response.text assert code == "True" if __name__ == "__main__": id = make_oeder() sms() place_order(id)
几点注意事项如下:
1、函数定义没有先后顺序,只是执行有先后顺序。
2、断言即判断实际结果是否和预期结果一致,如果不一致,则中断整改程序的执行,因为后面的程序没有执行的必要,而且会打印出不一致的地方,以便可以快速定位到一步执行结果出错,方便查询问题。
3、函数之间的参数传递,需要将函数执行结果赋值给某一个参数,并在另外的函数之中定义形式参数,并最终将实际参数赋值到函数内的参数之中
标签:item dig cookies text sts load highlight validate xxxxxx
原文地址:https://www.cnblogs.com/mtfan01/p/11522653.html