*** Settings *** Library urllib3 Library String Library DateTime Library Collections Library RequestsLibrary Library DatabaseLibrary Library OperatingSystem Library ImageHorizonLibrary *** Keywords *** 读取TXT文件 #读取TXT文件 ${file} Get File ${CURDIR}\\phone-test.txt #读取文件 ${skip-line} Set Variable 1 #跳过第一行 ${lines} Set Variable -1 #读取整个文件,从第二行开始 ${content} Get Lines Containing String ${file} ${skip-line} ${lines} FOR ${id} IN ${content} ${id} String.Split String ${id} \n END Set Global Variable ${id} 生成随机手机号 ${phoneList} Create List ${num} Evaluate random.choice(["139","188","185","136","158","151","132","156","189","187","135","134"]) random ${number} Evaluate "".join(random.sample("01234567897",8)) random,string ${phone} Evaluate ${num}${number} Append To List ${phoneList} ${phone} Set Global Variable ${phoneList} 写入数据到txt文件 ${file_path} Set Variable ${EXECDIR}\\Phone.txt Append To File ${file_path} ${phone},888888\n 游客登录${dating}平台 #游客登录婚介平台 Disable Warnings Create Session dating ${${dating}.dating域名} ${${dating}.CHeader} ${reps} GET On Session dating /dating-agency-service/user/get/marriage-information/tourist-recommend ${message} Get From Dictionary ${reps.json()} message Should Be Equal As Strings ${message} successful 用户获取${dating}平台短信验证码 #用户获取婚介平台短信验证码 Disable Warnings FOR ${account} IN @{id} Create Session dating ${${dating}.dating域名} ${${dating}.AHeader} ${data} Set Variable { \ \ \ \ "purpose": 1, \ \ \ \ "verifiableAccount": "${account}", \ \ \ \ "verifiableAccountType": 1 } #获取短信验证码请求参数 ${reps} POST On Session dating /dating-agency-uec/authorize/get/auth-captcha ${data.encode('utf-8')} ${message} Get From Dictionary ${reps.json()} message #获取接口相应的message END Should Be Equal As Strings ${message} successful #断言是否相等 Sleep 2 数据库查询用户生效且未过期的验证码 #数据库中查询手机号验证码 ${captcha_list} Create List FOR ${account} IN @{id} ${Time} Get Current Date result_format=%Y-%m-%d %H:%M:%S Connect To Database Using Custom Params pymysql database='dating_agency_uec',user='root',password='qniaothreetwoonego',host='8.135.8.221' ${check} Query SELECT code FROM da_captcha WHERE verifiable_account = '${account}' AND status = 1 AND is_delete = 0 AND expired_time > '${Time}' #查询手机号获取的验证码 ${captcha} Set Variable ${check[0][0]} Set Global Variable ${captcha} Append To List ${captcha_list} ${captcha} Disconnect From Database END Set Global Variable ${captcha_list} 数据库查询用户生效且已过期的验证码 #数据库中查询手机号验证码 ${captcha_list} Create List FOR ${account} IN @{id} ${Time} Get Current Date result_format=%Y-%m-%d %H:%M:%S Connect To Database Using Custom Params pymysql database='dating_agency_uec',user='root',password='qniaothreetwoonego',host='8.135.8.221' ${check} Query SELECT code FROM da_captcha WHERE verifiable_account = '${account}' AND status = 1 AND is_delete = 0 AND expired_time < '${Time}' #查询手机号获取的验证码 ${captcha} Set Variable ${check[0][0]} Append To List ${captcha_list} ${captcha} Disconnect From Database END Set Global Variable ${captcha} Set Global Variable ${captcha_list} 用户手机号验证码登录${dating}平台 #用户手机号验证码登录婚介平台 ${userid_list} Create List ${Cheader_list} Create List ${Aheader_list} Create List FOR ${account} ${captcha} IN ZIP ${id} ${captcha_list} Disable Warnings Create Session dating ${${dating}.dating域名} ${${dating}.AHeader} ${data} Set Variable { \ \ "account":"${account}", \ \ "accountType":2, \ \ "captcha":"${captcha}" } #手机号验证码登录参数 ${reps} POST On Session dating /dating-agency-uec/authorize/by-captcha ${data.encode('utf-8')} ${code} Get From Dictionary ${reps.json()} code #获取相应状态码 ${token} Get From Dictionary ${reps.json()['data']} token #获取token ${userId} Get From Dictionary ${reps.json()['data']} userId #获取用户id ${message} Get From Dictionary ${reps.json()} message ${login_header} Set Variable {'Content-Type':'application/json','X-APP-ID':'50325897884795881','Authorization':'QNT ${token}'} #更新header ${client_header} Set Variable {'Content-Type':'application/json','X-APP-ID':'50325897884795880','Authorization':'QNT ${token}'} Append To List ${userid_list} ${userId} Append To List ${Cheader_list} ${client_header} Append To List ${Aheader_list} ${login_header} Run Keyword If ${code}==0 Should Be Equal As Strings ${message} successful ... ELSE Should Be Equal As Strings ${message} 验证码错误或无效验证码,请重试! END Set Global Variable ${userid_list} Set Global Variable ${Aheader_list} Set Global Variable ${Cheader_list} Set Global Variable ${login_header} Set Global Variable ${client_header} 用户手机号验证码登录${dating}平台-888888 #用户手机号验证码登录婚介平台 ${userid_list} Create List ${Cheader_list} Create List ${Aheader_list} Create List ${phoneList} Create List FOR ${account} IN @{id} Disable Warnings Create Session dating ${${dating}.dating域名} ${${dating}.AHeader} ${data} Set Variable { \ \ "account":"${account}", \ \ "accountType":2, \ \ "captcha":888888 } #手机号验证码登录参数 ${reps} POST On Session dating /dating-agency-uec/authorize/by-captcha ${data.encode('utf-8')} ${code} Get From Dictionary ${reps.json()} code #获取相应状态码 ${token} Get From Dictionary ${reps.json()['data']} token #获取token ${userId} Get From Dictionary ${reps.json()['data']} userId #获取用户id ${message} Get From Dictionary ${reps.json()} message ${login_header} Set Variable {'Content-Type':'application/json','X-APP-ID':'50325897884795881','Authorization':'QNT ${token}','X-Organization-Id':'963432943739605555'} #更新header log ${login_header} #${client_header} Set Variable {'Content-Type':'application/json','X-APP-ID':'50325897884795880','Authorization':'QNT ${token}'} #趣招亲小程序 ${client_header} Set Variable {'Content-Type':'application/json','X-APP-ID':'50325897884795883','Authorization':'${token}'} #招亲宝小程序 Append To List ${userid_list} ${userId} Append To List ${Cheader_list} ${client_header} Append To List ${Aheader_list} ${login_header} Append To List ${phoneList} ${account} Run Keyword If ${code}==0 Should Be Equal As Strings ${message} successful ... ELSE Should Be Equal As Strings ${message} 验证码错误或无效验证码,请重试! END Set Global Variable ${token} Set Global Variable ${phoneList} Set Global Variable ${userid_list} Set Global Variable ${Aheader_list} Set Global Variable ${Cheader_list} Set Global Variable ${login_header} Set Global Variable ${client_header} 用户手机号验证码登录${dating}平台-phone #用户手机号验证码登录婚介平台 ${userid_list} Create List ${Cheader_list} Create List ${Aheader_list} Create List Disable Warnings FOR ${phone} IN @{phoneList} Create Session dating ${${dating}.dating域名} ${${dating}.AHeader} ${data} Set Variable { \ \ "account":"${phone}", \ \ "accountType":2, \ \ "captcha":888888 } #手机号验证码登录参数 ${reps} POST On Session dating /dating-agency-uec/authorize/by-captcha ${data.encode('utf-8')} ${code} Get From Dictionary ${reps.json()} code #获取相应状态码 ${token} Get From Dictionary ${reps.json()['data']} token #获取token ${userId} Get From Dictionary ${reps.json()['data']} userId #获取用户id ${message} Get From Dictionary ${reps.json()} message ${login_header} Set Variable {'Content-Type':'application/json','X-APP-ID':'50325897884795881','Authorization':'QNT ${token}','X-Organization-Id':'963432943739605555'} #更新header ${client_header} Set Variable {'Content-Type':'application/json','X-APP-ID':'50325897884795880','Authorization':'QNT ${token}'} #趣招亲小程序 #${client_header} Set Variable {'Content-Type':'application/json','X-APP-ID':'50325897884795883','Authorization':'QNT ${token}'} #招亲宝小程序 Append To List ${userid_list} ${userId} Append To List ${Cheader_list} ${client_header} Append To List ${Aheader_list} ${login_header} Append To List ${phoneList} ${phone} Run Keyword If ${code}==0 Should Be Equal As Strings ${message} successful ... ELSE Should Be Equal As Strings ${message} 验证码错误或无效验证码,请重试! END Set Global Variable ${phoneList} Set Global Variable ${userid_list} Set Global Variable ${Aheader_list} Set Global Variable ${Cheader_list} Set Global Variable ${login_header} Set Global Variable ${client_header} 用户手机号错误验证码登录${dating}平台 #用户手机号验证码登录婚介平台 FOR ${account} IN @{id} Disable Warnings Create Session dating ${${dating}.dating域名} ${${dating}.AHeader} ${data} Set Variable { \ \ "account":"${account}", \ \ "accountType":2, \ \ "captcha":"${captcha}" } #手机号验证码登录参数 ${reps} POST On Session dating /dating-agency-uec/authorize/by-captcha ${data.encode('utf-8')} ${code} Get From Dictionary ${reps.json()} code #获取相应状态码 ${message} Get From Dictionary ${reps.json()} message Run Keyword If ${code}==0 Should Be Equal As Strings ${message} successful ... ELSE Should Be Equal As Strings ${message} 验证码错误或无效验证码,请重试! END 查询用户的${dating}组织 #查询用户在婚介的组织数据 ${Aheader} Create List FOR ${userId} ${login_header} IN ZIP ${userid_list} ${Aheader_list} Disable Warnings Create Session dating ${${dating}.dating域名} ${login_header} ${reps} GET On Session dating /dating-agency-uec/user/list/own-organization params=userId=${userid} ${data} Get From Dictionary ${reps.json()} data #获取用户组织数据 Set Global Variable ${data} ${message} Get From Dictionary ${reps.json()} message Should Be Equal As Strings ${message} successful Run Keyword If ${data}==[] log 未获取到组织信息! ... ELSE 遍历用户组织信息 END 遍历用户组织信息 #遍历用户组织信息 ${Cheader_list} Create List FOR ${orgdata} IN @{data} #${orgdata} Evaluate random.choice(${data}) random #随机获取用户组织信息 ${orgId} Get From Dictionary ${orgdata} orgId #组织id ${orgName} Get From Dictionary ${orgdata} fullName #组织name Exit For Loop If ${orgId}==1023568243073355776 END #${client_header} Set Variable {'Content-Type':'application/json','X-APP-ID':'50325897884795880','Authorization':'QNT ${token}'} #趣招亲小程序 ${client_header} Set Variable {'Content-Type':'application/json','X-APP-ID':'50325897884795883','Authorization':'${token}','X-ORGANIZATION-ID':'${orgId}'} #招亲宝小程序 Append To List ${Cheader_list} ${client_header} Set Global Variable ${orgId} Set Global Variable ${orgName} Set Global Variable ${client_header} Set Global Variable ${Cheader_list} 获取${dating}平台用户baseinfo #获取baseinfo ${matchmakerFlagList} Create List FOR ${admin_header} IN @{Aheader_list} Create Session dating ${${dating}.dating域名} ${admin_header} ${reps} GET On Session dating dating-agency-uec/user/get/base-info ${phone} Get From Dictionary ${reps.json()['data']} phone #登录用户手机号 ${matchmakerFlag} Get From Dictionary ${reps.json()['data']} matchmakerFlag #登录用户是否是红娘 Append To List ${matchmakerFlagList} ${matchmakerFlag} END Set Global Variable ${phone} Set Global Variable ${matchmakerFlag} Set Global Variable ${matchmakerFlagList} 扫描${dating}红娘二维码 #解析二维码图片 #${filepath} Evaluate open('./matchmaker.png','rb') FOR ${client_header} IN @{Cheader_list} Create Session dating ${${dating}.dating域名} ${client_header} ${reps} GET On Session dating dating-agency-uec/user/verify/qrcode params=&qrCodeRecordId=989944284495089664 ${code} Get From Dictionary ${reps.json()} code END 获取${dating}平台用户baseinfo并判断是否是红娘 #获取baseinfo FOR ${admin_header} IN @{Aheader_list} Create Session dating ${${dating}.dating域名} ${admin_header} ${reps} GET On Session dating dating-agency-uec/user/get/base-info ${phone} Get From Dictionary ${reps.json()['data']} phone #登录用户手机号 ${matchmakerFlag} Get From Dictionary ${reps.json()['data']} matchmakerFlag #登录用户是否是红娘 Run Keyword If ${matchmakerFlag}==False 查询婚介红娘申请结果 ... ELSE 查询婚介平台红娘列表 END Set Global Variable ${phone} Set Global Variable ${matchmakerFlag} 查询${dating}红娘申请结果 FOR ${client_header} IN @{Cheader_list} Create Session dating ${${dating}.dating域名} ${client_header} ${reps} GET On Session dating dating-agency-uec/user/get/matchmaker-apply/by/customer ${data} Get From Dictionary ${reps.json()} data Run Keyword If ${data}==None 红娘加盟结果-未提交 ... ELSE 查询婚介红娘申请加盟列表 Run Keyword If ${status}==4 红娘加盟结果-审核失败 ... ELSE IF ${status}==1 红娘加盟结果-待付款 ... ELSE IF ${status}==3 查询婚介平台红娘列表 ... ELSE 红娘加盟结果-待审核 END 红娘加盟结果-未提交 填写婚介红娘加盟信息 数据库修改申请状态为待审核 运营人员操作婚介后台审核通过 红娘加盟结果-待付款 数据库修改申请状态为待审核 运营人员操作婚介后台审核通过 红娘加盟结果-待审核 运营人员操作婚介后台审核通过 红娘加盟结果-审核失败 填写婚介红娘加盟信息 数据库修改申请状态为待审核 运营人员操作婚介后台审核通过 填写${dating}红娘加盟信息 region固定省市-广州 FOR ${client_header} IN @{Cheader_list} Create Session dating ${${dating}.dating域名} ${client_header} ${value} Generate Random String 18 [NUMBERS] #随机生成18位数字 ${data} Set Variable { \ \ \ \ "name": "${phone}", \ \ \ \ "identityCard": "${value}", \ \ \ \ "phone": "${phone}", \ \ \ \ "captcha": "666666", \ \ \ \ "serviceAreaList": [ \ \ \ \ \ \ \ \ { \ \ \ \ \ \ \ \ \ \ \ \ "provinceCode": ${provinceCode}, \ \ \ \ \ \ \ \ \ \ \ \ "provinceName": "${provinceName}", \ \ \ \ \ \ \ \ \ \ \ \ "cityCode": ${cityCode}, \ \ \ \ \ \ \ \ \ \ \ \ "cityName": "${cityName}", \ \ \ \ \ \ \ \ \ \ \ \ "districtCode": ${districtCode}, \ \ \ \ \ \ \ \ \ \ \ \ "districtName": "${districtName}" \ \ \ \ \ \ \ \ } \ \ \ \ ] } ${reps} POST On Session dating dating-agency-uec/user/apply/matchmaker ${data.encode('utf-8')} ${matchmakerId} Get From Dictionary ${reps.json()} data #红娘审核id Set Global Variable ${matchmakerId} END 查询婚介红娘申请加盟列表 数据库修改申请状态为待审核 #Connect To Database Using Custom Params pymysql database='dating_agency_uec',user='root',password='qniaothreetwoonego',host='8.135.8.221' #测试环境 Connect To Database Using Custom Params pymysql database='dating_agency_uec',user='jxh_user',password='jxh@2024db',host='rm-wz94koti4awpbd5t3ro.mysql.rds.aliyuncs.com' #生产环境 ${update} Execute Sql String UPDATE `dating_agency_uec`.`da_matchmaker_audit` SET `status` = 2 WHERE `id` = ${matchmakerId} #更新数据库红娘加盟状态为待审核 ${check} Query SELECT id FROM `dating_agency_uec`.`da_matchmaker_audit` WHERE `id` = '${matchmakerId}' #查询数据库红娘加盟数据 ${id} Set Variable ${check[0][0]} Should Be Equal As Strings ${id} ${matchmakerId} Disconnect From Database 运营人员操作${dating}后台审核通过 FOR ${admin_header} IN @{Aheader_list} 查询婚介红娘申请加盟列表 Create Session dating ${${dating}.dating域名} ${admin_header} ${data} Set Variable {"id":"${matchmakerId}","status":3} ${reps} POST On Session dating dating-agency-uec/user/audit/matchmaker-apply ${data.encode('utf-8')} ${message} Get From Dictionary ${reps.json()} message Should Be Equal As Strings ${message} successful END 查询${dating}红娘申请加盟列表 #查询红娘加盟审核列表 FOR ${admin_header} IN @{Aheader_list} Create Session dating ${${dating}.dating域名} ${admin_header} ${reps} GET On Session dating dating-agency-uec/user/page/matchmaker-audit params=pageSize=10&pageNum=1 ${records} Get From Dictionary ${reps.json()['data']} records #红娘加盟审核列表 Set Global Variable ${records} 遍历红娘加盟审核列表 END 遍历红娘加盟审核列表 FOR ${data} IN @{records} ${Phone} Get From Dictionary ${data} phone #红娘手机号 ${status} Get From Dictionary ${data} status #红娘加盟审核状态 ${matchmakerId} Get From Dictionary ${data} id #红娘加盟id Exit For Loop If ${Phone}==${phone} END Set Global Variable ${Phone} Set Global Variable ${status} Set Global Variable ${matchmakerId} 查询${dating}平台红娘列表 FOR ${admin_header} IN @{Aheader_list} Create Session dating ${${dating}.dating域名} ${admin_header} ${reps} GET On Session dating dating-agency-uec/user/page/matchmaker params=pageSize=10&pageNum=1 ${matchmaker_list} Get From Dictionary ${reps.json()['data']} records #红娘列表 Set Global Variable ${matchmaker_list} 红娘列表 END 红娘列表 FOR ${matchmaker} IN @{matchmaker_list} ${status} Get From Dictionary ${matchmaker} status #获取红娘加盟状态 ${PhoneNum} Get From Dictionary ${matchmaker} phone #获取红娘手机号 Exit For Loop If ${PhoneNum}==${phone} END Set Global Variable ${PhoneNum} Set Global Variable ${status} 数据库删除用户数据 FOR ${userId} IN @{userid_list} Connect To Database Using Custom Params pymysql database='dating_agency_uec',user='root',password='qniaothreetwoonego',host='8.135.8.221' ${update_account} Execute Sql String UPDATE da_account \ SET is_delete=1 WHERE user_id='${userId}' ${update_user} Execute Sql String UPDATE da_user \ SET is_delete=1 WHERE id='${userId}' Disconnect From Database END 创建一个列表 ${result} Create List 4 5 6 ${pid_list} Create List 7 8 9 Set Global Variable ${result} Set Global Variable ${pid_list} 同时执行多个参数的FOR循环 ${id-list} Create List 1 2 FOR ${id} ${pid} ${i} IN ZIP ${id-list} ${pid_list} ${result} ${data} Set Variable { \ \ \ \ "id": "${id}", \ \ \ \ "result": "${i}", \ \ \ \ "pid": "${pid}" } END ${tempdir} Set Variable ${EXECDIR} #获取脚本执行路径 FOR循环 ${L1} Create List {'c':3} FOR ${i} IN @{L1} ${output} Set Variable {'item':${data}} END region固定省市-广州 Disable Warnings Create Session region http://qncloud.oss-cn-shenzhen.aliyuncs.com ${reps} GET On Session region address.json ${local_data} Get From Dictionary ${reps.json()} data FOR ${province} IN @{local_data} #省列表数据 ${provinceCode} Get From Dictionary ${province} value #获取省编码 ${provinceName} Get From Dictionary ${province} label #获取省名称 Exit For Loop If '${provinceName}'=='广东省' END ${city_data} Get From Dictionary ${province} children #广东省市列表数据 FOR ${city} IN @{city_data} ${cityCode} Get From Dictionary ${city} value #获取市编码 ${cityName} Get From Dictionary ${city} label #获取市名称 Exit For Loop If '${cityName}'=='广州市' END ${district_data} Get From Dictionary ${city} children #广州市列表数据 log ${district_data} ${district} Evaluate random.choice(${district_data}) random ${districtCode} Get From Dictionary ${district} value #随机获取广州市区编码 ${districtName} Get From Dictionary ${district} label #随机获取广州市区名称 Set Global Variable ${cityCode} Set Global Variable ${cityName} Set Global Variable ${districtCode} Set Global Variable ${districtName} Set Global Variable ${provinceCode} Set Global Variable ${provinceName}