目录
一 前言
1.易语言是什么?
易语言是一种面向中文用户的计算机编程语言,它注重简单易学、功能丰富、适合初学者的特点。易语言采用中文关键字和表达方式,使得初学者更容易理解和掌握编程知识。 易语言支持常见的编程结构,包括顺序结构、选择结构、循环结构等,同时具备丰富的内置函数和库,方便进行图形界面设计、文件操作、网络通信、数据库访问等各种应用开发。易语言还支持多线程和定时器等特性,适合编写需要并发处理的程序。 由于易语言使用中文关键字,因此在编写代码时更贴近中文表达习惯,降低了语言障碍,有利于初学者快速入门。易语言在国内有着广泛的用户群体,尤其受到学生、教育机构和个人开发者的青睐。
总的来说,易语言以其简单易学、功能丰富、适合中文用户的特点,为广大初学者和个人开发者提供了一个良好的编程平台。
2.为什么要写这个软件?
写一个教程关于易语言的0基础学习简单抢购功能是非常实用的,不仅对于抢购有帮助,还对软件测试员有以下几个用途:
学习易语言基础:编写抢购功能可以帮助初学者熟悉易语言的语法和基本概念,了解如何处理用户输入、控制流程、使用循环等。
熟悉网络编程:抢购功能通常需要与网络进行交互,包括发送请求、接收响应等。通过编写这样的功能,软件测试员可以学习如何使用易语言进行网络编程,并了解网络通信的基本原理。
实践并发编程:抢购过程中可能需要同时发送多个请求,这就涉及到并发编程。通过编写定时功能、线程数量和次数的控制,软件测试员可以学习如何处理并发操作、线程管理等相关知识。 掌握测试技巧:在编写抢购功能的过程中,可以结合软件测试的思维,考虑各种可能的情况,包括异常处理、边界条件等。这有助于提高软件测试员的测试思维和技巧。
通过编写易语言的抢购功能,不仅可以提高编程能力,还可以对软件测试员的技能提供实际应用场景。这对于初学者和想要进一步提升技术水平的人来说都是有益的。
3.这个软件实现了什么
这款软件能够帮助用户更高效地进行抢购操作。用户可以准确掌握重发包信息,利用定时功能合理规划抢购时间,灵活设置线程数量和抢购次数,提高成功率和效率。
(1)重发包显示
软件能够显示重发包,即在抢购过程中发送的请求包。这样用户可以清晰地看到每次请求的内容,方便进行调试和分析。
(2)定时操作
软件支持定时功能,用户可以设定抢购开始时间,倒计时到指定时间后自动开始抢购。这样用户无需手动等待,可以提前设定好时间,确保不会错过抢购时机。
(3)线程数量设置
软件允许用户设置线程的数量,即同时执行抢购的线程数。通过灵活设置线程数量,可以根据不同的网络环境和抢购需求,达到最佳的抢购效果。
(4)次数设定
软件支持设定抢购的次数,用户可以指定需要进行多少次抢购尝试。这样可以根据实际情况调整次数,增加成功率。
二 易语言基础
安装和配置易语言开发环境
在这里不便提供易语言文件的下载,相关文件百度都有自行下载。
然后开始打开易语言
启动易语言,在首次打开需要配置一下支持库。路径:顶部的菜单栏 工具-支持库配置-对于库选择全选,然后确认
接下来开始新建一个项目
顶部的菜单栏 程序-新建-Windows窗口工具-确认
三 图形界面设计
接下来我们开始设计一个适当的UI图像设计页面,使其尽量美观
先将窗口适当的拖动
1.标签设置
将窗口调整合适大小之后,开始设计标签,按照下面图示进行
依次设置六个标签
名称为标签_请求地址,标签内容为请求地址
名称为标签_请求标头,标签内容为请求标头
名称为标签_请求数据,标签内容为请求数据
名称为标签_抢购次数,标签内容为抢购次数
名称为标签_抢购线程,标签内容为抢购线程
名称为标签_定时设置,标签内容为定时设置
2.文本框设置
按照图示,在右侧扩展组件中,寻找到超级编辑框,设置了三个超级编辑框
分别名称为超级编辑框_请求标头,超级编辑框_请求数据,超级编辑框_日志
接下来设置了请求地址的文本框,这里选择基本组件的编辑框,名称为编辑框_请求地址
3.定时操作的设计
这里采用了三个编辑框,分别输入时-分-秒,三个标签显示其内容提示
标签分别为编辑框_时,编辑框_分,编辑框_秒
再设计三个标签,分别为
名称为标签_时,标签内容为时
名称为标签_分,标签内容为分
名称为标签_秒,标签内容为秒
对其设置定时按钮操作的设计,在这里设计了俩个
名称为按钮_开始定时,按钮内容为开始定时
名称为按钮_停止定时,按钮内容为停止定时
4.抢购操作的设计
先设计俩个编辑框,对抢购次数,抢购线程进行设置,这里选择基本组件的编辑框
名称为编辑框_请求次数
名称为编辑框_请求线程
接下来再设计俩个抢购的按钮
名称为按钮_开始抢购,按钮内容为开始抢购
名称为按钮_停止抢购,按钮内容为停止抢购
四 代码实现
双击“开始抢购按钮”,然后进入代码编辑页面
为使后面的线程变得可控,在这里添加线程句柄
由于本程序实现了post类的请求与多线程
先为程序导入模块,相关模块自行百度,都可以下载的到(我这里不方便提供)
1.抢购
现在为日志添加输出时间显示,添加一个新的子程序名字为_时钟1_周期事件,在空白处直接右键新子程序,名字为_时钟1_周期事件
进行添加一些变量名和代码,由于代码复制的问题,我在这里提供图片和代码俩种方式,直接复制过来和图示不太一样,作参考给大家
代码:
.版本 2
.支持库 iext2
y = 到文本 (t.wYear)
m = 到文本 (t.wMonth)
.如果真 (到整数 (m) < 10)
m = “0” + m
.如果真结束
d = 到文本 (t.wDay)
.如果真 (到整数 (y) < 10)
d = “0” + d
.如果真结束
h = 到文本 (t.wHour)
.如果真 (到整数 (h) < 10)
h = “0” + h
.如果真结束
mm = 到文本 (t.wMinute)
.如果真 (到整数 (mm) < 10)
mm = “0” + mm
.如果真结束
s = 到文本 (t.wSecond)
.如果真 (到整数 (s) < 10)
s = “0” + s
.如果真结束
ms = 到文本 (t.wMilliseconds)
.如果真 (到整数 (ms) < 10)
ms = “0” + ms
.如果真结束
.如果真 (到整数 (ms) > 10 且 到整数 (ms) < 100)
ms = “0” + ms
.如果真结束
超级编辑框_日志.被选择文本 = y + “年” + m + “月” + d + “日” + h + “小时” + mm + “分” + s + “秒” + ms + “毫秒” + #换行符
图示:
对于上面的时钟要添加一些数据类型,在顶部的菜单栏中选择插入-数据类型,代码如下
.版本 2
.数据类型 SYSTEMTIME, , , SYSTEMTIME
.成员 wYear, 短整数型, , , wYear
.成员 wMonth, 短整数型, , , wMonth
.成员 wDayOfWeek, 短整数型, , , wDayOfWeek
.成员 wDay, 短整数型, , , wDay
.成员 wHour, 短整数型, , , wHour
.成员 wMinute, 短整数型, , , wMinute
.成员 wSecond, 短整数型, , , wSecond
.成员 wMilliseconds, 短整数型, , , wMilliseconds
图示
对于上面的时钟,需要使用到DLL命令
在顶部菜单栏中,找到 插入-DLL命令
.版本 2
.DLL命令 系统时间到毫秒, 整数型, "kernel32", "GetLocalTime"
.参数 系统时间格式, SYSTEMTIME
图示
接下来开始写实现“开始抢购”的功能,为实现抢购,我又写了一个新的子程序“抢购”
在这里用到了精易模块中的post请求函数,代码如下
.版本 2
.支持库 iext2
.支持库 EThread
.子程序 抢购
.参数 返回值, 文本型
.参数 提交网址, 文本型
.参数 提交标头, 文本型
.参数 提交信息, 文本型
.参数 请求次数, 整数型
.局部变量 cishu, 整数型
.局部变量 当前时间, 日期时间型
提交网址 = 编辑框_请求地址.内容
提交标头 = 超级编辑框_请求标头.内容
提交信息 = 超级编辑框_请求数据.内容
请求次数 = 到整数 (编辑框_抢购次数.内容)
.计次循环首 (请求次数, cishu)
启动线程 (&_时钟1_周期事件, , )
返回值 = 编码_URL解码 (到文本 (网页_访问_对象 (提交网址, 1, 提交信息, , , 提交标头)), 真)
超级编辑框_日志.被选择文本 = 返回值 + #换行符
.计次循环尾 ()
如图
接下来对抢购按钮进行实现,使用到了鱼刺模块的多线程,在这里实现了指定多线程与次数抢购
下面是代码
.版本 2
.支持库 EThread
.支持库 iext2
.子程序 _按钮_开始抢购_被单击
.局部变量 xian, 整数型
.局部变量 xiancheng, 整数型
.局部变量 handle, 整数型, , "1000"
xian = 到整数 (编辑框_抢购线程.内容)
线程池_创建 (xian)
.计次循环首 (xian, xiancheng)
启动线程 (&抢购, , jieshu)
超级编辑框_日志.被选择文本 = #换行符
_延时 (10)
.计次循环尾 ()
线程池_销毁 (handle [xiancheng])
图示
2.停止抢购
在这里通过使用线程句柄来强制结束线程,相关代码如下
.版本 2
.支持库 EThread
.支持库 iext2
.子程序 _按钮_停止抢购_被单击
强制结束线程 (jieshu)
超级编辑框_日志.被选择文本 = #换行符 + “已强制结束所有线程”
信息框 (“成功强制暂停所有线程!”, 0, , )
图示
3.开始定时
现在为定时按钮功能,设计一个新子程序名为“定时”,相关代码如下
.版本 2
.支持库 EThread
.子程序 定时
.局部变量 时间, 日期时间型
.局部变量 时, 整数型
.局部变量 分, 整数型
.局部变量 秒, 整数型
.判断循环首 (真)
时间 = 取现行时间 ()
时 = 取小时 (时间)
分 = 取分钟 (时间)
秒 = 取秒 (时间)
.如果真 (时 = 到整数 (编辑框_时.内容) 且 分 = 到整数 (编辑框_分.内容) 且 秒 = 到整数 (编辑框_秒.内容))
启动线程 (&_按钮_开始抢购_被单击, , )
跳出循环 ()
.如果真结束
.判断循环尾 ()
图示
现在开始启动“开始定时”,为其子程序编写内容,相关代码如下
.版本 2
.支持库 EThread
.支持库 iext2
启动线程 (&定时, , time)
超级编辑框_日志.被选择文本 = #换行符 + “已开启定时!!!注意时间是否规范”
图示
4.停止定时
在这里使用线程句柄,去把有关定时的线程进行强制结束,相关代码如下
.版本 2
.支持库 EThread
.支持库 iext2
.子程序 _按钮_停止定时_被单击
强制结束线程 (time)
超级编辑框_日志.被选择文本 = #换行符 + “【已强制结束定时】”
信息框 (“成功强制结束定时!”, 0, , )
图示
五 测试程序
现对页面设计,在定时设置那里进行微调一下
现在开始测试程序 ★ 仅用于研究和学习的目的测试使用 ★
启动程序
往软件内填写数据,然后开始定时,如图所示,测试正常
如若要为软件顶部添加名字,看图示操作
六 发布软件
接下来打包软件,并为其设置名字为多线程定时。
在顶部的菜单栏中,选择编译-静态编译,然后软件名字设置为多线程定时,保存即可
生成软件双击打开,所有功能实现