robotframework实战三--自定义关键字
在rf的实战1中,我的登录获取验证码就使用了自定义关键字,具体怎么做的,如下
1.新建文件夹
新建一个文件夹,我的MyLibrary,并且存放在site-packages下

2.编写代码
在python的编译器中把需要的代码编写完成,并且运行成功,以下代码就是获取页面的session,生成随机数,拿到session+key+随机数,生成MD5,在和请求一起get请求,返回验证码,代码在本地编译没有问题
import random
import hashlib
import types
import requests
key="XXXXXXXXX"
class verificationCode(object):
def __init__(self):
self.encryptiontest = ''
def code(self,cookie):
# 随机数
letter = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
requestId = []
requestId.append(''.join(random.sample(list(letter), 6)))
randomNumber=''.join(requestId)
data = "a:1:{s:10:\"session_id\";s:26:\"" + cookie + "\";}"
getsign = key + randomNumber + data # 获得密匙
# MD5加密
m = hashlib.md5()
m.update(getsign)
self.encryptiontest=m.hexdigest()
#get请求
url = "https://rosewholesale.com/auto/api.php"
textmod = {'XXXX': 'XXX', 'act': 'XXX', 'requestId': randomNumber, 'sign': self.encryptiontest, 'data': data,'ftc': 'XXXX'}
r = requests.get(url, params=textmod)
print "code:",r.status_code
getcontent=r.text
print u'返回的内容:',getcontent
converturl = str(getcontent)
splitStr = converturl[-76:-70]
print u'验证码为:',splitStr
return splitStr if __name__ == '__main__':
verif=verificationCode()
verif.code('aq3k8qphile1nrknarpnjb9eg0')
3.文件夹创建一个init文件,如下

文件夹中包含两个py文件

4.rf导入文件

如果导入后没有显示红色说明导入成功
5.使用自定义关键字
使用F5查找,查看是否引入了文件夹

使用在项目中

可以看见我的项目中是需要一个页面的cookie,目前获取的cookie给了一个变量cookie,而code就是我们刚刚定义的变量,把cookie给code,在到id为code的输入框中进行输入(验证码输入框),输入
你看是否成功,1.界面显示 2、日志打印,可以看到我们日志中的每个走向

robotframework实战三--自定义关键字的更多相关文章
- RobotFrameWork中使用自定义关键字
今天尝试在RF中使用一下自己写的关键字. 1.首先写一个py文件,如下,简单打印个message 2.在RF中点击library,把写的py文件加进来 3.使用函数mylog,有一个参数,也可以F5看 ...
- {Django基础九之中间件} 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证
Django基础九之中间件 本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学会了 ...
- RobotFramework自动化测试框架系统关键字之断言
一.基础 RobotFramework带有丰富的系统关键,使用时无需导入,直接使用,为写自动化用例带来了极大的方便:不能停留在知道或者是会得程度,只有熟练使用各关键字,才能提升自动化用例的写作效率.下 ...
- miniFTP项目实战三
项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...
- PHP中this,self,parent三个关键字
this,self,parent三个关键字从字面上比较好理解,分别是指这.自己.父亲. this是指向当前对象的指针(姑且用C里面的指针来看吧)self是指向当前类的指针parent是指向父类的指针( ...
- PHP之MVC项目实战(三)
本文主要包括以下内容 标准错误错误处理 http操作 PDO 文件操作 标准错误错误处理 PHP在语法层面上发生的错误 两个过程: 触发阶段(发生一个错误) 处理阶段(如何处理该错误) 触发阶段 系统 ...
- coreseek实战(三):全文搜索在php中应用(使用api接口)
coreseek实战(三):全文搜索在php中应用(使用api接口) 这一篇文章开始学习在php页面中通过api接口,使用coreseek全文搜索. 第一步:综合一下前两篇文章,coreseek实战( ...
- Java基础(三)-final关键字分析
今天来谈谈final关键字的作用, 虽然有很多博文关于final进行了很深的研究,但还是要去记录下谈谈自己的见解加深下印象.下面直接进入主题: 一.final关键字的作用 1.被final修饰的类不能 ...
- Android特效专辑(三)——自定义不一样的Toast
Android特效专辑(三)--自定义不一样的Toast 大家都知道,Android的控件有时候很难满足我们的需求,所以我们需要自定义View.自定义的方式很多,有继承原生控件也有直接自定义View的 ...
随机推荐
- 经典网络LeNet5看卷积神经网络各层的维度变化
本文介绍以下几个CNN经典模型:Lenet(1986年).Alexnet(2012年).GoogleNet(2014年).VGG(2014年).Deep Residual Learning(2015年 ...
- java——极简handler机制
handler机制要做的事情: 1.把一堆从四面八方传来的message加到一个队列中,这个队列就是MessageQueue. 2.将MessageQueue中的队头Message取出,并使用这个me ...
- 转 Logs are not shipped to the physical standby database
http://www.oracle-ckpt.com/dataguard_troubleshoot_snapper/ ######sample primay scripts: spool dg_Pri ...
- redis的三种启动方式,个人常用第二种
redis的启动方式1.直接启动 进入redis根目录,执行命令: #加上‘&’号使redis以后台程序方式运行 1 ./redis-server & 2.通过指定配置文件启动 ...
- STM32F3 浮点运算使用
在keil中使用浮点运算的步骤:在程序中包含#include <math.h>
- Caused by: java.net.URISyntaxException: Relative path in absolute URI
<property> <name>hive.exec.scratchdir</name> <value>/tmp/hive</value> ...
- bootstrap-datepicker控件中文 ,只显示年和只显示月份
插件下载地址 https://github.com/uxsolutions/bootstrap-datepicker html <link href="css/bootstrap-da ...
- sysbench测试MySQL筛选tps
log=$1tps_array=`awk -F '[,:]' '{print $4}' ${log}`zero=0 for tps in ${tps_array}do tps=`echo ${tps} ...
- 几种常见的排序算法Java实现总结
public class MySort { final int MAX=20; int num[]=new int[MAX]; { System.out.print("生成的随机数组是:&q ...
- Sean McGinnis
* Loaded log from Wed Nov 25 22:19:43 2015 * Now talking on #openstack-smaug* [smcginnis] (~smcginni ...